Используете «определенные» с «ifdef»? - PullRequest
4 голосов
/ 04 августа 2011

рассмотрите фрагмент ниже:

#ifdef AAA && (defined BBB)
...
#endif

gcc-4.5.2 жалуется на эту строку:

дополнительные токены в конце директивы #ifdef.

Является ли незаконным объединение ifdef и defined?

Спасибо!

Ответы [ 2 ]

12 голосов
/ 04 августа 2011

#ifdef требует один идентификатор и эквивалентен #if defined(identifier).

Вам необходимо использовать директиву #if, если у вас есть более сложное выражение:

#if (defined AAA) && (defined BBB) // true if AAA and BBB are both defined
#if AAA && (defined BBB)           // true if AAA is true and BBB is defined
5 голосов
/ 04 августа 2011

#ifdef будет работать только на одном токене. Если вы хотите использовать более одного, напишите

#if defined(AAA) && defined(BBB)

...