2013-11-11 4 views
1

Мне интересно, как я могу условно определить макросы функций. Например, предположим, что у меня есть макрос функции SETBIT. Я хотел бы определить свою собственную версию, если кто-то, использующий мою библиотеку, не будет содержать отдельный заголовочный файл, где такая макрофункция уже была бы определена. Причиной этого является мобильность среди разных компиляторов.Условное определение макросов функции C

Так, я знаю, что я могу сделать это с помощью констант следующим образом:

#ifndef X 
#define X 10 
#endif 

Я хотел бы сделать что-то подобное с функцией макросъемки

#ifndef SETBIT 
#define SETBIT(port,bit) ((port) |= (1 << (bit))) 
#endif 

Однако, я не верю это сработает.

ответ

3

Однако я не верю, что это сработает.

Что заставляет вас поверить в это? Он будет работать (при условии, что вы установите опечатку - он должен читать #ifndef SET_BIT, я полагаю).

+0

Да, это действительно сработало. Думаю, я подумал, что мне нужны «параметры функции» где-то. DOH! – audiFanatic

Смежные вопросы