gpt4 book ai didi

c - 在 C 预处理器中为其自身定义一些内容

转载 作者:行者123 更新时间:2023-11-30 16:05:59 25 4
gpt4 key购买 nike

我遇到了这些行:

#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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com