Globale Variablen ...??

Gast #524026
Lesenswert?
• ▲
▼
Mein Compiler meint immer ich hätte die Variable nicht definiert, sobald 
ich diese in einer externen c-Datei behandle. Siehe das Beispiel. In der 
main.c habe ich temp als global definiert..oder? Das müsste doch gehen!

main.c :
1
uint8_t temp = 0;
2

3
void main (void){
4

5
....
6

7
}

util.c :
1
temp = 5;
Gast #524041
Lesenswert?
• ▲
▼
Wenn die Variable in der util.c nicht bekannt ist, dann geht das nicht! 
Der Compiler bearbeitet die Quell-Dateien alle einzeln. Wenn Du die 
Variable in der util.c mit einer extern-Deklaration bekannt machst, dann 
sollte es funktionieren.
#524083
Lesenswert?
• ▲
▼
besser Du schreibst Deine extern  Definitionen in eine .h Datei:

in modul.c:
1
uint8_t global_var1 = 0;
in modul.h:
1
extern uint8_t global_var1;
In main.c musst Du dann nur die .h Dateien Deiner Module einbinden:
1
#include "modul.h"
2

3
void main(void){
4
  global_var1 = 1;
5
}
Genauso verfährst Du mit den Funktions-Deklarationen.

Viele Grüße, Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren