摘要: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>
语句是什么意思。
答案 0 :(得分:2)
宏扩展为“1”,并且在内置的情况下,默认定义宏,例如__cplusplus
,在命令行的情况下,宏在命令行中定义,即,-DMACRO=1
。
您可以看到预定义宏列表:
cpp -dM foo.h