12

摘要: C++ 预处理器输出包括一些行,上面写着<built-in>. 我很想知道这些是干什么用的。

详情

test.cpp当我在名为with的文件中编译以下代码时clang++ -E(输出g++类似):

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;
  return 0;
}

前几行输出如下:

# 1 "test.cpp"
# 1 "test.cpp" 1
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 156 "<built-in>" 3
# 1 "<command行>" 1
# 1 "<内置>" 2
# 1 "test.cpp" 2

我的问题是这些陈述是什么<built-in>意思。

4

1 回答 1

3

宏扩展为“1”,如果是内置的,则默认定义宏,例如,__cplusplus如果是命令行,则宏定义在命令行上,即-DMACRO=1

您可以看到预定义宏的列表:

cpp -dM foo.h  
于 2013-02-21T22:38:59.493 回答