Was ist in C ++ - Präprozessor-Ausgabe integriert?

8

Zusammenfassung : Die C ++ - Präprozessorausgabe enthält einige Zeilen, die <built-in> enthalten. Ich bin neugierig zu wissen, wofür diese sind.

Details :

Wenn ich den folgenden Code in einer Datei namens test.cpp mit clang++ -E kompiliere (Ausgabe von g++ ist ähnlich):

%Vor%

Die ersten Zeilen der Ausgabe sind wie folgt:

  

# 1 "test.cpp"
      # 1 "test.cpp" 1
      # 1 "& lt; eingebaut & gt;" 1
      # 1 "& lt; eingebaut & gt;" 3
      # 156 "& lt; eingebaut & gt;" 3
      # 1 "& lt; Befehlszeile & gt;" 1
      # 1 "& lt; eingebaut & gt;" 2
      # 1 "test.cpp" 2

Meine Frage lautet: Was bedeuten die <built-in> -Anweisungen?

    
Gabriel Southern 21.02.2013, 22:18
quelle

1 Antwort

2

Ein Makro wird auf "1" erweitert, und im Fall von Built-in wird das Makro standardmäßig definiert, z. B. __cplusplus . Im Falle einer Befehlszeile wird das Makro auf der Befehlszeile definiert, dh -DMACRO=1 .

Sie können eine Liste vordefinierter Makros sehen:

%Vor%     
perreal 21.02.2013, 22:38
quelle

Tags und Links