Include Guard wie benutzen?



  • Hi,

    mal so ne Frage: Wie sehen eure Includeguards aus? Also die Bezeichner

    #define __file_h__
    #define file_h
    #define _FILE_H_
    oder anders?!

    Wie ist das mit #pragma once? Futtern das nun endlich auch GCC Compiler?!



  • #define _FILE_H_ ist denke ich üblich, aber vorwiegend Stilfrage.



  • Ich bin eher für "#define FILE_H" (Namen mit _ am Anfang sind für den Compiler reserviert)

    ("#pragma once" ist auch nett, beherrscht leider nicht jeder Compiler)



  • CStoll schrieb:

    Ich bin eher für "#define FILE_H" (Namen mit _ am Anfang sind für den Compiler reserviert)

    ("#pragma once" ist auch nett, beherrscht leider nicht jeder Compiler)

    Vor allen Dingen ist "#pragma once" kein Standard.

    Include-guards per #ifdef/#define funktionieren doch. Warum sollte man so eine propriätäre Erweiterung im gcc implementieren?

    Tntnet



  • Um Namenskonflikte zu verhindern kannst du den Namen
    der Headerdatei hinter '#define' auch doppelt schreiben:

    [cpp]#ifndef header_h
    #define header_h header_h
    // Quellcode
    #endif[/cpp]
    

    Häufig hat der Name der Datei nämlich mit dem Inhalt zu tun ( 🙂 ), was bei mehrmaliger Namensdefinition dann zu unerwünschtem Verhalten führt.
    Mit Doppelstrich würde ich keinen Namen beginnen, da diese wohl systemintern verwendet werden.

    Bobby - Karle


Anmelden zum Antworten