【发布时间】:2019-07-11 13:11:31
【问题描述】:
我在遗留代码中发现了这一行,我想知道它有什么用处。你有什么想法吗?
#define CONST const
【问题讨论】:
标签: c c-preprocessor keyword
我在遗留代码中发现了这一行,我想知道它有什么用处。你有什么想法吗?
#define CONST const
【问题讨论】:
标签: c c-preprocessor keyword
有时像这样的宏用于能够使用可能不支持所有功能的旧编译器编译代码。
例如,在这种情况下,您可以简单地将 CONST 定义为空,这将允许您在不支持 const 限定符的非常旧的 C 编译器中编译代码。
您通常会在标准库的实现中看到这样的宏。
映射到 C 关键字的宏还有另一种常见的相关案例:能够在新的 C 标准中引入 new C keywords 而不会破坏旧代码。这些标准宏是为了使用方便而添加的,例如stdbool.h 中为 _Bool 关键字定义的 bool 宏。
【讨论】:
CONST 看起来比 const 更好...