PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C]: Globale Variable


mf_2
2009-02-17, 18:28:32
Hallo,

ich habe ein Programm mit folgenden Dateien:

main.c
funktionen.h
funktionen.c

Die main() Funktion befindet sich in mai.c
Direkt vor der main() Funktion wird folgende globale Variable deklariert:
int var;
In main() bekommt diese Variable via
var=5;
den Wert 5 zugewiesen.
Nun will ich in funktionen.c in der Funktion berechne(); auf 'var' zugreifen.
Dies sollte doch möglich sein, da diese Variable außerhalb des main() deklariert wurde. Oder muss ich diese Variable in funktionen.h oder funktionen.c noch irgendwie referenzieren?

Gruß,
mf_2

Eruphus
2009-02-17, 18:34:49
Hallo,

ich habe ein Programm mit folgenden Dateien:

main.c
funktionen.h
funktionen.c

Die main() Funktion befindet sich in mai.c
Direkt vor der main() Funktion wird folgende globale Variable deklariert:
int var;
In main() bekommt diese Variable via
var=5;
den Wert 5 zugewiesen.
Nun will ich in funktionen.c in der Funktion berechne(); auf 'var' zugreifen.
Dies sollte doch möglich sein, da diese Variable außerhalb des main() deklariert wurde. Oder muss ich diese Variable in funktionen.h oder funktionen.c noch irgendwie referenzieren?

Gruß,
mf_2


oben in deiner funktionen.c

extern int var;

sollte dein Problem beheben.

allerdings rate ich von der Nutzung von globalen Variablen ab.
das wird sehr schnell sehr unübersichtlich.

baba

Ruph

mf_2
2009-02-17, 19:03:50
Danke, läuft!
Ich bin auch kein Fan von globalen Variablen, deswegen habe ich auch bis jetzt nicht wirklich gewusst wie man sie korrekt anlegt. In dem Fall lässt es sich aber nicht vermeiden.

Oid
2009-02-17, 19:14:56
Alternativ kannst dir in main.c auch eine Funktion GetVar() definieren, die den Wert der Variablen zurückgibt. GetVar() ist dann auch in funktionen.c verfügbar.



int GetVar(void){
return var;
}

Eruphus
2009-02-17, 19:26:21
Der Funktionsrumpf der int GetVar(void) müsste dann aber auch bekannt gemacht werden....