以下C代码有什么问题

时间:2012-01-09 08:29:58

标签: c visual-studio-2010 boolean c-preprocessor

我正在使用VC2010。我使用

将FALSE定义为false
#define FALSE=false

然后我尝试使用它如下

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

编译器标记为FALSE并说“预期表达式”。

我使用false而不是定义的'FALSE'并接受它。 我想知道可能是什么问题。

你可能告诉我不要定义,所以不要使用FALSE。好吧,我没有使用它。

我只是想知道这个问题。

3 个答案:

答案 0 :(得分:6)

就是这样:

#define FALSE false

有空格且没有=

答案 1 :(得分:5)

您不应将=放在定义语句中:

#define FALSE false

问题在于预处理器会将每个FALSE替换为=false,因此您将拥有:

*bPtr==false;

如你所见,这是不合法的。

答案 2 :(得分:2)

尝试这样定义:

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