我发现了一些宏名称和替换列表相同的预处理指令。例如,gcc提供的stdbool.h中的一些预处理指令。宏名称和替换列表相同
#else /* __cplusplus */
/* Supporting <stdbool.h> in C++ is a GCC extension. */
#define _Bool bool
#define bool bool
#define false false
#define true true
#endif /* __cplusplus */
我不明白为什么程序员编写了这些预处理指令。它们是无用的,替换会浪费时间。我知道这不会导致无限递归。如何避免无限递归? C标准中的相关规定是什么?
因为定义关键字是一个错误,所以在您自己的代码中编写这将不合法。由于这是实施的一部分,我想这是不同的。 – jcoder