【问题标题】:What can this C preprocessor macro mapping to a C keyword be used for?这个 C 预处理器宏映射到 C 关键字可以用来做什么?
【发布时间】:2019-07-11 13:11:31
【问题描述】:

我在遗留代码中发现了这一行,我想知道它有什么用处。你有什么想法吗?

#define CONST const

【问题讨论】:

    标签: c c-preprocessor keyword


    【解决方案1】:

    有时像这样的宏用于能够使用可能不支持所有功能的旧编译器编译代码。

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

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


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

    【讨论】:

    • 除此之外,有时也会对要编辑的设置进行预编译,尽管这不是很好的做法
    • 不幸的是,我看到人们这样做只是因为他们认为 CONST 看起来比 const 更好...
    猜你喜欢
    • 1970-01-01
    • 2011-03-01
    • 2020-02-09
    • 2010-09-23
    • 1970-01-01
    • 2022-07-21
    • 2015-07-12
    • 2011-01-26
    • 2014-08-22
    相关资源
    最近更新 更多