реклама на сайте
подробности

 
 
> Массив меток на C, возможно ли сделать?
ViKo
сообщение Jun 3 2012, 16:31
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Можно сделать массив указателей на низкоуровневые функции. А в функции верхнего уровня по индексу вызывать один уз указателей. Но отъедаются ресурсы на вызов низкоуровневой функции и возврат из нее. Как бы сделать это в виде массива из меток на низкоуровневые части, которыми набита одна функция верхнего уровня?
Можно, конечно, в виде switch - case... Наверное, зря я голову ломаю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Jun 3 2012, 16:36
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(ViKo @ Jun 3 2012, 20:31) *
Можно сделать массив указателей на низкоуровневые функции. А в функции верхнего уровня по индексу вызывать один уз указателей. Но отъедаются ресурсы на вызов низкоуровневой функции и возврат из нее. Как бы сделать это в виде массива из меток на низкоуровневые части, которыми набита одна функция верхнего уровня?


А как с параметрами тех функций? Они у всех ваших функций одинаковы? Или при каждом вызове вы будете переопределять указатель?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 3 2012, 16:43
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Xenia @ Jun 3 2012, 19:36) *
А как с параметрами тех функций? Они у всех ваших функций одинаковы? Или при каждом вызове вы будете переопределять указатель?

А у них нет параметра. void. Приходит, к примеру, по последовательному порту команда (индекс в том самом массиве), нужно ее выполнить.

Цитата(maksimp @ Jun 3 2012, 19:38) *
На стандартном Си нельзя. Но GCC имеет такую возможнось:

Это пробежал по диагонали. Во-первых, у меня не GCC... laughing.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 01:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016