Что не так со следующим кодом C - PullRequest
0 голосов
/ 09 января 2012

Я использую VC2010. Я определил ЛОЖЬ, чтобы быть ложным, используя

#define FALSE=false

и затем я попытался использовать его следующим образом

bool *bPtr;
if(some condition)
*bPtr=FALSE;

компилятор отмечает FALSE и говорит: «Ожидается выражение».

Я использовал false вместо определенного 'FALSE', и он принимает его. Мне интересно, в чем может быть проблема.

Вы можете сказать мне не определять и, следовательно, не использовать FALSE. ну, я им не пользуюсь.

Я просто хочу знать проблему.

Ответы [ 3 ]

6 голосов
/ 09 января 2012

Только так:

#define FALSE false

с пробелами и без =.

5 голосов
/ 09 января 2012

Вы не должны ставить = в определении определения:

#define FALSE false

Проблема в том, что препроцессор будет заменять каждые FALSE на =false, поэтому у вас будет:

*bPtr==false;

И это не законно, как вы видите.

2 голосов
/ 09 января 2012

попробуйте определить так:

#ifndef (FALSE)
#define FALSE (0)
#endif
...