【发布时间】:2014-02-02 20:11:58
【问题描述】:
C 和 C++ 预处理器之间的行为有什么不同吗?
它们由不同的标准文本段落定义(C standard 的第 6.10 节和C++ standard 的第 16 节)。
我提出这个问题的动机是,最近被 C++14 接受的 proposal for making the single quote a digit separator 扩展了 C++ 预处理器语法以适应这种变化(具体来说,它扩展了 pp-number),我想知道这是否会导致 C 和 C++ 预处理器之间的不兼容,如果是,这是否是第一个这样做的功能。
【问题讨论】:
-
在GCC 中
g++(实际上是cc1plus)和gcc(实际上是cc1)使用相同的libcpp/内部库进行预处理。 -
这个答案给出了一些已经存在的差异的例子:stackoverflow.com/questions/5085533/…
-
您可以随时查看可变参数宏。 C在C99中有它们。 C++ 必须等到 C++11。
标签: c++ c c-preprocessor standards