什么是C ++预处理器输出中的<内置>?</内置>

时间:2013-02-21 22:18:28

标签: c++ c-preprocessor

摘要:C ++预处理器输出包含一些说<built-in>的行。我很想知道它们的用途。

详情

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

#include <iostream>

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

输出的前几行如下:

  

#1“test.cpp”
      #1“test.cpp”1
      #1“&lt;内置&gt;” 1
      #1“&lt;内置&gt;” 3
      #156“&lt;内置&gt;” 3
      #1“&lt;命令行&gt;” 1
      #1“&lt;内置&gt;” 2
      #1“test.cpp”2

我的问题是<built-in>语句是什么意思。

1 个答案:

答案 0 :(得分:2)

宏扩展为“1”,并且在内置的情况下,默认定义宏,例如__cplusplus,在命令行的情况下,宏在命令行中定义,即,-DMACRO=1

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

cpp -dM foo.h