Ich bin vertraut mit #pragma mark objective-c / xcode / ios-Entwicklung und dass es nützlich ist, um Codeabschnitte zu finden.
Ich frage mich jedoch, ob es andere Keywords als "mark" gibt. Wie können Sie #pragma somethingselse tun? Vielen Dank im Voraus!
Zuerst einige Beispiele:
Sie können die Diagnose steuern:
Und von demselben Link:
clang unterstützt die Microsoft-Funktion "
#pragma pack
" zur Steuerung des Datensatzlayouts. GCC bietet auch Unterstützung für diese Funktion. Wenn jedoch MSVC und GCC inkompatibel sind, folgt clang der MSVC-Definition.clang unterstützt das Feature Microsoft
#pragma comment(lib, "foo.lib")
für die automatische Verknüpfung mit der angegebenen Bibliothek. Derzeit funktioniert diese Funktion nur mit dem Visual C ++ - Linker.clang unterstützt das Microsoft
#pragma comment(linker, "/flag:foo")
-Feature zum Hinzufügen von Linker-Flags zu COFF-Objektdateien. Der Benutzer ist dafür verantwortlich sicherzustellen, dass der Linker die Flags versteht.
Die zweite und dritte Liste wird jedoch nicht auf Ihren iOS-Code angewendet.
Wikipedia [ link ] sagt, dass clang auch #pragma once
unterstützt.
Und schließlich, hier ist ein Link zu der CLANG-API-Dokumentation für den pragma
-Behandlungscode. Sie können von dort aus suchen, um alles andere zu sehen. TokenKinds.def beschreibt insbesondere alle akzeptierten Token, also ist es vermutlich komplett:
Der Parsing-Code, der in ParsePragma.cpp
gefunden wurde, scheint darauf hinzudeuten, dass nicht alle davon implementiert sind. auch wenn das Front-End sie akzeptiert.
Ja. Es wird oft für implementierte definierte Direktiven verwendet, aber es gibt einige, die in C definiert sind.
6.10.6 Pragma-Direktive Semantik 1
Eine Preprocessing-Direktive der Form
# pragma pp-tokensopt new-line
, bei der das Vorverarbeitungstoken STDC nicht sofort ausgeführt wird folgen Sie Pragma in der Direktive (vor jedem Makroersatz) bewirkt, dass sich die Implementierung in einer Implementierung definiert Weise. Das Verhalten kann dazu führen, dass die Übersetzung fehlschlägt oder den Fehler verursacht Übersetzer oder das resultierende Programm, um sich nicht konform zu verhalten Weise. Irgendein solches Pragma, das von der Implementierung nicht erkannt wird wird ignoriert.Wenn das Vorverarbeitungstoken STDC dem Pragma in der Direktive (vor jedem Makroersatz) unmittelbar folgt, dann kein Makro die Richtlinie wird ersetzt haben eine der folgenden Formen, deren Bedeutungen beschrieben werden anderswo:
#pragma STDC FP_CONTRACT on-off-switch
#pragma STDC FENV_ACCESS on-off-switch
%Vor%
#pragma STDC CX_LIMITED_RANGE on-off-switch
Carl Norums Antwort umfasste Beispiele für die Umsetzung definierter Richtlinien. Eine vollständige Liste finden Sie in der Dokumentation Ihres Compilers.
Tags und Links objective-c ios pragma