Ich habe ein C-Projekt, bei dem der gesamte Code in *.c
/ *.h
Dateipaare, und ich muss in einer Datei einen konstanten Wert definieren, der jedoch auch in anderen Dateien verwendet werden soll. Wie sollte ich diesen Wert deklarieren und definieren?
Sollte es so sein static const ...
im *.h
Datei? Als extern const ...
im *.h
Datei und definiert in der *.c
Datei? Inwiefern spielt es eine Rolle, wenn der Wert kein primitiver Datentyp ist ( int
, double
usw.), sondern ein char *
oder eine struct
? (In meinem Fall ist es allerdings ein double
.)
Dinge im Inneren definieren *.h
Dateien zu verwenden, scheint generell keine gute Idee zu sein; man sollte Dinge in der *.h
Datei, sondern definieren sie in der Datei *.c
Datei. Allerdings ist die extern const ...
scheint ineffizient zu sein, da der Compiler den Wert nicht einbinden kann, sondern immer über seine Adresse zugreifen muss.
Ich denke, der Kern dieser Frage ist: Sollte man den Begriff static const ...
Werte in *.h
Dateien in C, um sie an mehreren Stellen verwenden zu können?