Я только что видел этот поток, описывающий, как добавить условные макросы: Условное значение для # define
, но в моем случае я определяю функцию в условии.
#if TARGET_IPHONE_SIMULATOR
#define doSomething(){\
\\ does something
}\
#else
#define doSomething(){\
\\ does something else
}\
#endif
Это работает, за исключением того, что я заставляю компилятор gcc выдавать это предупреждение:
"doSomething" redefined
This is the location of the previous arguments
Есть ли обходной путь, помогающий избавиться от предупреждений?
ОБНОВЛЕНИЕ:
Поэтому я попытался включить условие в мое определение:
#define doSomething(){\
#if TARGET_IPHONE_SIMULATOR
\\ do something
#else
\\ do something else
#endif
}\
, но это выдает ошибку:
error: '#' is not followed by a macro parameter.