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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.