Was ist die Bedeutung der Linien, beginnend mit einer Raute und Nummer wie " # 1 “ein.c"' in den gcc-Präprozessor-Ausgabe?
Ich ausdrucken die Ausgabe der C-Präprozessor durch die Verwendung
gcc -E a.c
Die Ausgabe enthält viele Zeilen wie
# 1 "a.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "a.c"
# 1 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 1 3
# 19 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 3
# 1 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 1 3
# 31 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 3
# 32 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 3
# 20 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 2 3
Ich noch nie gesehen, diese Art der syntax in C. Kann mir jemand erklären, was das tut?
Wie loswerden von Ihnen: stackoverflow.com/questions/2946898/...
InformationsquelleAutor user607722 | 2011-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Linien sind Hinweise für die Fehlersuche (wo der code nach der Zeile kam tatsächlich aus)
Bedeutung der flags (durch Leerzeichen getrennt):
InformationsquelleAutor jdehaan
Diese linemarkers sind erwähnt in
man gcc
für-P
option.Den
-P
option ist speziell dafür gedacht, um loszuwerden, diese Zeilen für Klarheit:Sehen ausführliche Dokumentation (beantwortet vor).
InformationsquelleAutor uvsmtid
Diese Linie Synchronisierung der Richtlinien, mit denen
gcc
zu geben, die richtigen Fehlermeldungen für Fehler in#include
d-Dateien. Andere Präprozessoren (wieyacc
/bison
) verwenden den gleichen Mechanismus, um sich zu beziehen C-Fehler, um die richtigen Zeilen in der Eingabe.y
Datei.bison
sollte emittieren#line
Präprozessor-Direktiven....InformationsquelleAutor geekosaur