以下C代码有什么问题

Joh*_*ohn 0 c boolean visual-studio-2010 c-preprocessor

我正在使用VC2010.我将FALSE定义为false

#define FALSE=false
Run Code Online (Sandbox Code Playgroud)

然后我试着按如下方式使用它

bool *bPtr;
if(some condition)
*bPtr=FALSE;
Run Code Online (Sandbox Code Playgroud)

编译器标记为FALSE并说"预期表达式".

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

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

我只是想知道这个问题.

mou*_*iel 6

只是这个:

#define FALSE false
Run Code Online (Sandbox Code Playgroud)

有空白和没有=.


Tam*_*ash 5

你不应该=在定义声明中加入:

#define FALSE false
Run Code Online (Sandbox Code Playgroud)

问题是,预处理器将取代每一个FALSE=false,所以你将有:

*bPtr==false;
Run Code Online (Sandbox Code Playgroud)

你看,这不合法.