Gab*_*ern 9 c++ c-preprocessor
简介:C++预处理器输出包含一些说明的行<built-in>.我很想知道它们的用途.
细节:
当我在一个文件名为编译下面的代码test.cpp与clang++ -E(输出g++是相似的):
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
前几行输出如下:
#1"test.cpp"
#1"test.cpp"1
#1"<内置>"1
#1"<内置>"3
#156"<内置>"3
#1"<命令line>"1
#1"<内置>"2
#1"test.cpp"2
我的问题是这些<built-in>陈述是什么意思.
宏扩展为“1”,如果是内置的,则默认定义该宏,例如,__cplusplus如果是命令行,则在命令行上定义该宏,即,-DMACRO=1。
您可以看到预定义宏的列表:
cpp -dM foo.h
Run Code Online (Sandbox Code Playgroud)