|
Два входа в одну функцию на C, возможно ли такое? |
|
|
|
 |
Ответов
|
Dec 2 2010, 11:43
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Код void Indication(void) { ... }
void Control(void) { ... }
void Combo(void) { Control(); Indication(); } Без комментариев. The Best
|
|
|
|
|
Dec 2 2010, 18:17
|

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

|
Цитата(_Pasha @ Dec 2 2010, 17:46)  ТХЕ БЕСТ оно будет когда все указанные функции объявим static. Прокомментирую сам. Квалификатор static будет иметь смысл, если я эти функции заброшу в отдельный файл. Таких функций у меня несколько десятков, что ж, мне, столько файлов создавать? Не вижу смысла. P.S. Где-то здесь и зарыта собака "неполной структурированности" языка C. P.P.S. По поводу do {...} while (0) - а чем плохо показанное в той же статье строчкой выше {...} ? Разве кто-то заставляет писать I2C_CLOCK() ; с точкой с запятой в конце? Или в дефайне можно было задать #define I2C_CLOCK(); {NOP(); SCL = 1; NOP(); SCL = 0;} Да, это не работает (кажется, в Hi-Tech PICC у меня получалось такое, а в Keil - нет)
|
|
|
|
|
Dec 3 2010, 08:29
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(ViKo @ Dec 2 2010, 21:17)  Прокомментирую сам. Квалификатор static будет иметь смысл, если я эти функции заброшу в отдельный файл. Таких функций у меня несколько десятков, что ж, мне, столько файлов создавать? Не вижу смысла. Пардон, не было времени на развернутый ответ. Код void Combo(void); void Control(void); void Indication(void); //............................................... static void Control_prim(void); static void Indication_prim(void); Имеем заготовки для того чтобы контрол и индикация вызывались как извне так и максимально оптимизированно Код void Combo(void) { Control_prim(); Indication_prim(); }
void Control(void) { Control_prim(); }
void Indication(void); { Indication_prim(); } Теперь великий смысел оберток, надеюсь понятен.
|
|
|
|
Сообщений в этой теме
ViKo Два входа в одну функцию на C Dec 2 2010, 11:28 ViKo Цитата(MALLOY2 @ Dec 2 2010, 13:43) The B... Dec 2 2010, 11:47 _Pasha Цитата(MALLOY2 @ Dec 2 2010, 14:43) Без к... Dec 2 2010, 15:46  sergeeff Цитата(_Pasha @ Dec 2 2010, 19:46) Почему... Dec 2 2010, 16:16   Dog Pawlowa Цитата(ViKo @ Dec 2 2010, 21:17) Или в де... Dec 2 2010, 19:07    ViKo Цитата(_Pasha @ Dec 3 2010, 10:29) Теперь... Dec 3 2010, 09:32     _Pasha Цитата(ViKo @ Dec 3 2010, 12:32) Пока что... Dec 3 2010, 09:37 XVR Цитата(MALLOY2 @ Dec 2 2010, 14:43) Кодvo... Dec 3 2010, 07:03  Tanya Цитата(XVR @ Dec 3 2010, 10:03) PS. Пишит... Dec 3 2010, 07:26 MrYuran Цитата(ViKo @ Dec 2 2010, 14:28) Можно ли... Dec 2 2010, 11:47 MALLOY2 ЦитатаИмеется некоторая избыточность в виде лишнег... Dec 2 2010, 11:57 ViKo Цитата(MALLOY2 @ Dec 2 2010, 13:57) я не ... Dec 2 2010, 12:15 MrYuran Цитата(MALLOY2 @ Dec 2 2010, 14:57) В сам... Dec 2 2010, 12:15 vvs157 Цитата(ViKo @ Dec 2 2010, 14:28) Иметь в ... Dec 2 2010, 12:34 kosyak© 2MrYuran
А чем компилятору могут не понравиться ск... Dec 2 2010, 12:34 MrYuran Цитата(kosyak© @ Dec 2 2010, 15:34) А чем... Dec 2 2010, 12:55 MALLOY2 ЦитатаНо только не так, как у вас!
Что, по-ваш... Dec 2 2010, 12:38 ViKo Есть вариант без switch
Кодvoid Control_Indication... Dec 2 2010, 13:07 kosyak© Цитата(MrYuran @ Dec 2 2010, 15:55) Есть ... Dec 2 2010, 13:16 MrYuran Цитата(kosyak© @ Dec 2 2010, 16:16) При d... Dec 2 2010, 13:27 MALLOY2 Так и есть это и есть всякие баги с макросами ,
... Dec 2 2010, 13:31 kosyak© Занятная статья.
do{}while(0) я видел в чужих ис... Dec 2 2010, 13:39 ViKo Цитата(kosyak© @ Dec 2 2010, 15:39) Сам я... Dec 2 2010, 14:05 zltigo QUOTE (kosyak© @ Dec 2 2010, 16:39) Занят... Dec 2 2010, 16:59 sergeeff Ну можно еще более универсальную штуку сочинить, т... Dec 2 2010, 14:12 ViKo Цитата(sergeeff @ Dec 2 2010, 16:12) ...а... Dec 2 2010, 14:18 sergeeff Вы боретесь за экономию одной команды вызова и одн... Dec 2 2010, 15:21 ViKo Цитата(sergeeff @ Dec 2 2010, 17:21) Вы б... Dec 2 2010, 15:50 kosyak© 2zltigo:
Хм...логично. Тогда напрашивается вопрос ... Dec 2 2010, 18:09 zltigo QUOTE (kosyak© @ Dec 2 2010, 21:09) Хм...... Dec 2 2010, 22:44 ViKo Цитата(kosyak© @ Dec 2 2010, 20:09) Хм...... Dec 3 2010, 09:41  Сергей Борщ QUOTE (ViKo @ Dec 3 2010, 11:41) Например... Dec 3 2010, 12:53   ViKo Цитата(Сергей Борщ @ Dec 3 2010, 14:53) П... Dec 3 2010, 14:58    _Pasha Цитата(ViKo @ Dec 3 2010, 18:58) Об этом ... Dec 3 2010, 15:07     ViKo Цитата(_Pasha @ Dec 3 2010, 17:07) Перекл... Dec 3 2010, 15:20      MrYuran Цитата(ViKo @ Dec 3 2010, 18:20) Да, вы п... Dec 3 2010, 15:47       _Pasha Цитата(MrYuran @ Dec 3 2010, 18:47) то ко... Dec 3 2010, 16:04 kosyak© Понятн...
Вот интересно - доживу я до момента когд... Dec 3 2010, 05:51 _Pasha Собсна делов-то:
Код#define Begin___Macro do{
#def... Dec 3 2010, 13:39 sigmaN ЦитатаЕсли функции инлайновые, а параметр констант... Dec 3 2010, 23:11 _Pasha Цитата(sigmaN @ Dec 4 2010, 02:11) конста... Dec 4 2010, 06:19 _Pasha Цитата(sigmaN @ Dec 4 2010, 02:11) конста... Dec 4 2010, 06:19 sergeeff TO _Pasha :
Сдается мне, что вы формулируете свои... Dec 4 2010, 11:32 _Pasha Цитата(sergeeff @ Dec 4 2010, 15:32) TO _... Dec 4 2010, 13:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|