#pragma once vs. Include Guards: Was ist besser für den Schutz vor doppeltem Einbinden?
Hallo zusammen! Ich bin ein Anfänger in der C++-Entwicklung und bin bereits mehrfach auf das Problem des doppelten Einbindens von Header-Dateien gestoßen. Zum Beispiel habe ich diesen Code:
\n\n// math_utils.h\n#ifndef MATH_UTILS_H\n#define MATH_UTILS_H\n\nint add(int a, int b) { return a + b; }\n\n#endif\n\n// main.cpp\n#include "math_utils.h"\n#include "math_utils.h" // versehentlich zweimal eingebunden\n\nint main() {\n return add(2, 3);\n}\n\n\nMit Include Guards funktioniert alles, aber mir ist aufgefallen, dass viele moderne Projekte (z.B. aus Boost) #pragma once verwenden. Ich habe gelesen, dass dies eine nicht standardisierte Direktive ist, aber sie wird von allen gängigen Compilern unterstützt.
Mich interessiert:
\n- \n
- Gibt es tatsächliche Performance-Probleme bei Include Guards? \n
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs