海湾合作委员会 4.4.4 c89
我在我维护的一些代码中看到了这一点。
#define FALSE 0
#define TRUE (!FALSE)
这样写有什么区别吗:
#define FALSE 0
#define TRUE 1
它被用在像这样的一些函数中:
if(condition failed) {
return FALSE;
}
else {
return TRUE;
}
非常感谢您的任何建议,
最佳答案
一个区别是,在 (!FALSE)
情况下,如果您更改:
#define FALSE 0
到
#define FALSE 1
您的程序仍然“有效”,无需修改 TRUE...但是,无论如何,这不太可能是安全的,因为我确信您的程序依赖于诸如
if (funtion_that_returns_FALSE()) {
}
如果您更改 FALSE
的定义,它会中断。不要改变它:)
关于c - 定义对象宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142625/