Ich habe Code wie diesen normalerweise am Anfang von Header-Dateien gesehen:
#ifndef HEADERFILE_H
#define HEADERFILE_H
Und am Ende der Datei steht
#endif
Was ist der Zweck davon?
#pragma
ist: Es aktiviert eine compilerspezifische Funktion. Obwohl #pragma once
es sehr weit verbreitet ist, ist es nicht Standard.
info cpp
oder hier ) heißt es: "Sie wird nicht von allen Präprozessoren erkannt, sodass Sie sich in einem tragbaren Programm nicht darauf verlassen können." Und GNU cpp optimiert die gängige und tragbare Sprache #ifndef
so effizient wie möglich #pragma once
.
#ifndef HEADERFILE_H
Kann subtiler den Namespace der Implementierung verletzen, mit dem der Headername anfängt E
; Bezeichner, die mit E
und eine Ziffer oder ein Großbuchstabe beginnen, sind vorbehalten <errno.h>
. Ich schlage vor #ifndef H_HEADERFILE
.