这个C预处理程序宏到C关键字的映射可以用于什么?

时间:2019-07-11 13:11:31

标签: c c-preprocessor keyword

我在旧版代码中找到了这一行,我想知道这有什么用。你有什么主意吗?

#define CONST const

1 个答案:

答案 0 :(得分:7)

有时,这样的宏通常用于使用可能不支持所有功能的较旧的编译器来编译代码。

例如,在这种情况下,您可以简单地将CONST定义为空,这将允许您在非常老的C编译器中编译代码,而无需支持const限定符。

您通常会在标准库的实现中看到这样的宏。


还有另一种与宏相关的常见情况,它们映射到C关键字:能够在较新的C标准中引入new C keywords而不会破坏旧代码。添加这些标准宏是为了方便使用,例如在bool中为_Bool关键字定义的stdbool.h宏。