Also ich habe es bisher immer so gemacht, dass ich eine globale
Variable, auf welche von unterschiedlichen c Dateien zugegriffen werden
soll, immer in einer c Datei deklariere und dann per h-file allen
anderen bekannt mache.
Meine Variante sieht so aus:
1. C Datei (1.c)
1 | #include <1.h>
|
2 |
|
3 | unsigned int global_var_xyz;
|
4 | ...
|
1. Header Datei (1.h)
1 | #ifndef EINS_H
|
2 | #define EINS_H //H-File Bezeichner
|
3 | extern unsigned int global_var_xyz;
|
4 | #endif
|
Nun kannst du in jeder C Datei die Header Datei 1.h per #include
einbinden und auf die Variable "global_var_xyz" zugreifen. Vieleicht
kannst du die Zeile "unsigned int global_var_xyz;" auch in die Header
Datei auslagern, aber das musst du selber testen. Das #ifndef ist dafür
da, damit die "extern" Bekanntmachung nicht bei jedem erneuten Einbinden
der Header Datei erzeugt wird (sonst gibt es Fehlermeldungen beim
Compilieren).
So wie ich es geschrieben habe funktioniert es bei mir zuverlässig.
Ciao,
Rainer