我遇到了这些行:
#define bool bool
#define false false
#define true true
我认为我不需要说更多的话,只是“wtf?”,但只是想清楚:给自己定义一些东西有什么意义?
这些行来自 clang stdbool.h
最佳答案
C 和 C++ 标准明确允许这样做(并要求不存在无限扩展)
顺便说一句,类似函数的递归(或 self-refential )宏更有用:
#define puts(X) (nblines++,puts(X))
(内部 puts
是对标准 puts
函数的调用;宏通过计算 nblines
来“重载”此类进一步的调用>)
您的定义可能有用,例如对于后来的构造,如 #ifdef true
,它不能是一个简单的 因为这会“删除”所有进一步的使用#define true
true
,因此它必须完全是#define true true
。
关于c - 在 C 预处理器中为其自身定义一些内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60098097/