我正在使用VC2010。我将FALSE定义为false,使用
#define FALSE=false然后我试着使用它,如下所示
bool *bPtr;
if(some condition)
*bPtr=FALSE;编译器标记为FALSE,并说“期望一个表达式”。
我使用false而不是定义的'FALSE‘,它接受它。我想知道问题出在哪里。
您可能会告诉我不要定义,所以不要使用FALSE。好吧,我不会用的。
我只想知道问题所在。
发布于 2012-01-09 16:33:28
你不应该把=放在定义语句中:
#define FALSE false问题是,预处理器将用=false替换每个FALSE,因此您将拥有:
*bPtr==false;正如你所见,这是不合法的。
发布于 2012-01-09 16:33:01
就是这样:
#define FALSE false使用空格和不使用=。
发布于 2012-01-09 16:33:15
尝试这样定义:
#ifndef (FALSE)
#define FALSE (0)
#endifhttps://stackoverflow.com/questions/8785599
复制相似问题