#ifndef <token>
/* code */
#else
/* code to include if the token is defined */
#endif
#ifndef
überprüft, ob die angegebene Token #defined
früher in der Datei oder in einer Datei enthalten ist; wenn nicht, enthält es den Code zwischen ihm und dem schließenden #else
oder, wenn kein #else
vorhanden ist, #endif
Aussage. #ifndef
wird häufig verwendet, um Headerdateien idempotent zu machen, indem ein Token definiert wird, sobald die Datei eingeschlossen wurde, und überprüft wird, dass das Token nicht an der Spitze dieser Datei steht.
#ifndef _INCL_GUARD
#define _INCL_GUARD
#endif
+1 - Ich hatte auch gleiche Zweifel, und bekam viel mehr gute Antwort hier, kann für zukünftige Besucher nützlich sein: http://StackOverflow.com/Q/3246803/1134940 –
Ich möchte hinzufügen, dass Sie können benutze auch ** # pragma once **, das ist alles was du tun musst und es dient demselben Zweck wie ifndef. Zum Vergleich der beiden, siehe: http://stackoverflow.com/questions/1143936/pragma-once-vs-in-clude-guards – Dimension
Am besten zu erwähnen, was ein '# Pragma' ist: Es aktiviert eine Compiler-spezifische Funktion. Obwohl "#pragma once" * sehr * weit verbreitet ist, ist es nicht Standard. – Potatoswatter