c - 定义对象宏

标签 c

海湾合作委员会 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/

相关文章:

c - 在 avx 中执行相当于 _mm_loaddup_pd 的功能的最快方法是什么?

c++ - 有没有模拟器编程教程或指南?

c - 在C编程中通过比较或其他方式根据结构体数组找到最小数量

c - 如何制作正确的 C makefile

c - 在 C 中监视外部进程的读/写事件?

c - 带指针的 sizeof 运算符

c++ - C++ 中的 strchr 在哪里?

c++ - 如何访问 RGB 图像数据

c - 提供相对路径时加载纹理将不起作用

c - 如何调整整数数组的大小?