12

概要: C++ プリプロセッサの出力には、次のような行が含まれています<built-in>。これらが何のためにあるのか知りたいです。

詳細

test.cppwithという名前のファイルで次のコードをコンパイルするとclang++ -E(からの出力g++は同様です):

#include <iostream>

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

出力の最初の数行は次のとおりです。

# 1 "test.cpp"
# 1 "test.cpp" 1
# 1 "<組み込み>" 1
# 1 "<組み込み>" 3
# 156 "<組み込み>" 3
# 1 "<コマンド行>" 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 に答える