C代码中的宏定义有什么问题?

时间:2017-12-07 12:48:32

标签: c

#define TRUE 1
#define FALSE 0

void function(int var)
{
    if(var == TRUE) {
        dosomething();
    }
}

在一次采访中,我看到了代码。但是,我认为这是正确的。我也在我的电脑上试试这个。

1 个答案:

答案 0 :(得分:4)

宏定义没有问题。但是,if条件需要解释。

注意:

之间的区别
if (var == TRUE) 

1使条件成立,而其他每个值都使其成为假。

if (var) 

0之外的每个值都使条件成立。只有0才会误解。