Frage

Was ist der Sinn des #line in der C Sprache? Wo würden sie verwendet werden?

War es hilfreich?

Lösung

Es teilt den Compiler, wo die folgende Zeile aus tatsächlich kam. Es ist in der Regel nur der C-Präprozessor, dass diese zum Beispiel fügt hinzu, wenn eine Datei mit, den Compiler erzählt (die im Grunde nur einen Strom von Daten zu sehen), die wir in einer anderen Datei suchen.

Das mag seltsam klingen, aber der Präprozessor fügt einfach die Header-Dateien geben Sie an, Ihre enthält, und der Compiler arbeitet an der ganzen Sache (alle Header-Dateien mit Ihrem Quellcode verketteten entlang), können Sie das Ergebnis des Vorprozessors überprüfen Stufe, wenn gcc mit gcc -E myfile.c verwenden. Dort werden Sie feststellen, es fügt eine #line Richtlinie, wenn Sie Dateien enthalten, und immer, wenn auch reduziert es die Menge an Text zu dem Compiler zugeführt (wie zB große Mengen an Kommentaren kann auf eine einzige #line Richtlinie reduziert werden, vorwärts springen)

Es wird auch von anderen Programmen, wie Bison / yacc verwendet, Ihnen zu sagen, dass das Problem (wenn die Kompilierung eines Problem gibt), um Ihre Regeln-Datei an einer bestimmten Linie verwendet ist, die die Compiler sonst nicht in der Lage wären, zu tun , wie der Bison / yacc generiert c-Dateien.

Andere Tipps

Es ist die Präprozessor Liniensteuerung genannt Richtlinie .

Die Erweiterungen sowohl __FILE__ und __LINE__ geändert werden, wenn eine #line Richtlinie verwendet wird. Es bewirkt, dass der Compiler die Zeilennummer der nächsten Quellenleitung als die angegebene Nummer anzuzeigen.

Sein Hauptzweck ist der Compiler bietet aussagekräftige Fehlermeldungen zu machen.

Sie können mehr Erklärung finden und ein Verwendungsbeispiel in IBM Dokumentation .

Es ist ein Pragma Stichwort:

" #line können Sie die Zeilennummer des Compilers ändern und (optional) der Dateiname Ausgabe für Fehler und Warnungen. Dieses Beispiel zeigt, wie zwei Warnungen mit Zeilennummern zugeordnet melden. Die #line 200 Richtlinie zwingt die Zeilennummer 200 zu sein (obwohl die Standardeinstellung # 7) und bis zur nächsten #line Richtlinie, wird der Dateiname als „Special“ gemeldet werden. die #line Standardrichtlinie gibt die Linie auf die Standard Nummerierung Nummerierung, die zählt die Linien, die von der früheren Richtlinie neu nummeriert wurden. "

Es ermöglicht Ihnen, die scheinbare Zeilennummer der Datei zu ändern.

Die einzige Verwendung ich mich vorstellen kann für sie ist die Zeilennummern sane nach einer langen Reihe von Multi-line-Makros zu machen.

Nutzung ist:

#line 42

Es ist vor allem verwendet, um die Dateinamen und Zeilennummern einer Quelldatei zu liefern, von dem eine C-Datei wurde (es Header oder Implementierung sein) erstellt. Da würde die Compiler Diagnose emittieren, die an der Quelldatei abgerufen werden, anstatt an der generierten Datei.

Präprozessoren auch diese verwenden zu enthalten Header in einer vorverarbeiteten Datei anzudeuten, dass diese erweitert.

# ist die Zeichenfolge Symbol mit dem Prozessor C und C ++ injing

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top