Mögliches Duplikat:
#pragma – helfen zu verstehen
Ich sah pragma
oft, aber immer verwirrt, weiß jemand, was es tut? Ist es nur Windows?
Wireshark
Mögliches Duplikat:
#pragma – helfen zu verstehen
Ich sah pragma
oft, aber immer verwirrt, weiß jemand, was es tut? Ist es nur Windows?
In den Programmiersprachen C und C++ ist #pragma once eine nicht standardmäßige, aber weithin unterstützte Präprozessordirektive, die dazu bestimmt ist, dass die aktuelle Quelldatei nur einmal in einer einzigen Kompilierung enthalten ist. Somit dient #pragma einmal dem gleichen Zweck wie #include guards, aber mit mehreren Vorteilen, darunter: weniger Code, Vermeidung von Namenskollisionen und verbesserte Kompiliergeschwindigkeit.
Siehe die Wikipedia Artikel für weitere Details.
Was macht pragma
meine? Ich kann mich nie daran erinnern …
– Wireshark
25. April 2011 um 9:19 Uhr
@wireshark Es ist ein griechisches Wort, “πράγμα” und es kommt von pragmatisch, wie hier gesagt …. Weil die genaue Bedeutung im Griechischen “Ding” ist, aber wenn Sie sich darauf konzentrieren, woher es kommt, können Sie sagen, dass es “Handlung” bedeutet “.
– Gsamaras
20. Juli 2016 um 18:41 Uhr
Es wird verwendet, um den folgenden Präprozessorcode zu ersetzen:
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
Eine gute Konvention besteht darin, beides hinzuzufügen, um ältere Compiler zu unterstützen (was jedoch selten vorkommt):
#pragma once
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
Wenn also #pragma einmal fehlschlägt, funktioniert die alte Methode immer noch.
Wenn der Zweck nur darin besteht, Legacy-Präprozessoren zu unterstützen, brauchen wir das nicht #pragma once
. Nur der #ifndef ... #define... #endif
wird reichen für jeder Präprozessor (ja, Präprozessor, keine Compiler, weißt du 🙂
– Sternchen
20. Juli um 16:31 Uhr
Im Allgemeinen die #pragma
Direktiven sind für die Implementierung von Compiler-spezifischen Präprozessoranweisungen vorgesehen. Sie sind nicht standardisiert, daher sollten Sie sich nicht zu sehr auf sie verlassen.
In diesem Fall, #pragma once
Der Zweck von ist es, die in Header-Dateien verwendeten Include-Wächter zu ersetzen, um eine mehrfache Aufnahme zu vermeiden. Es arbeitet auf den Compilern, die es unterstützen, etwas schneller, sodass es die Kompilierungszeit bei großen Projekten mit vielen Header-Dateien reduzieren kann #include
‘ed häufig.
Pragma ist eine Anweisung an den Präprozessor. Es wird normalerweise verwendet, um eine zusätzliche Kontrolle während der Kompilierung bereitzustellen. Fügen Sie beispielsweise nicht denselben Header-Dateicode ein. Es gibt viele verschiedene Richtlinien. Die Antwort hängt davon ab, was auf das Pragma-Wort folgt.