Was du wahrscheinlich möchtest, ist das:
global.h:
1 | #ifndef GLOBAL_H
|
2 | #define GLOBAL_H
|
3 |
|
4 | extern unsigned int State_array[4]; // Deklaration des Arrays
|
5 |
|
6 | #endif
|
hauptcode.c:
1 | #include <global.h>
|
2 |
|
3 | unsigned int State_array[4] = { // Definition und Initialisierung des Arrays
|
4 | 0x02, 0x03, 0x06, 0x07
|
5 | };
|
Merke: Ins Header-File kommen üblicherweise nur Deklarationen, also
nichts, was Speicher belegt. Globale Variablen mit "extern" sind reine
Deklarationen, welche im Header-File verwendet werden können. GLobale
Variablen ohne "extern" hingegen sind Definitionen, sagen also dem
Compiler, dass der für diese Variable Speicher reservieren soll. So eine
Variablendefinition sollten in genau einem .c-File auftauchen.
Damit belegt State_array nur einmal Speicher, es kann aber von jedem
Programmmodul darauf zugegriffen werden, das global.h includet.