peecee
07-08-2003, 19:12
Ich hab da ein Array field [x][x] und es ist ausserhalb irgendeiner Funktion deklariert.
Also ist mein Array field[x][x] eine globale Variable.
Nach meinem Wissen ist eine globale Variable überall im Programm sichtbar.
Meine Programm besteht inzwischen aus 4 Quellcode Dateien und einer Header datei. In allen 4 Quellcode Dateien benutzen Funktionen das Array.
Bis jetzt wurde das Array in der main Funktion deklariert und jeder Funktion übergeben.
Jetzt hab ich aber eine Funktion die erst über 2 andere Funktionen aufgerufen wird - die beide das Array nicht benötigen - also dacht ich mir machst du eine globale Variable daraus und du musst keiner Funktion mehr das Array übergeben.
Aber - jetzt kommt endlich die Frage ;) - ich definiere das Array in der ersten Quellcodedatei so wie oben beschrieben, und es ist nicht in den anderen Dateien sichtbar.
Die Definition lautet genau
int field [x][x]; Merke: es ist keine static Variable
Warum ist das so ??????
Derweilen hab ich mir damit geholfen das Array in der Header Datei zu deklarieren die in jede Quellcodedatei included ist.
Das funktioniert auch, aber ich dachte dann müsste eine Meldung im Stile von "redeclaration of field" kommen.
Warum ist das nicht so ??????
Wo liegt meine Denkfehler ????
Ach ja ich benutzte C und als IDE DevC++ also gcc als Compiler.
Please Help
peecee
Also ist mein Array field[x][x] eine globale Variable.
Nach meinem Wissen ist eine globale Variable überall im Programm sichtbar.
Meine Programm besteht inzwischen aus 4 Quellcode Dateien und einer Header datei. In allen 4 Quellcode Dateien benutzen Funktionen das Array.
Bis jetzt wurde das Array in der main Funktion deklariert und jeder Funktion übergeben.
Jetzt hab ich aber eine Funktion die erst über 2 andere Funktionen aufgerufen wird - die beide das Array nicht benötigen - also dacht ich mir machst du eine globale Variable daraus und du musst keiner Funktion mehr das Array übergeben.
Aber - jetzt kommt endlich die Frage ;) - ich definiere das Array in der ersten Quellcodedatei so wie oben beschrieben, und es ist nicht in den anderen Dateien sichtbar.
Die Definition lautet genau
int field [x][x]; Merke: es ist keine static Variable
Warum ist das so ??????
Derweilen hab ich mir damit geholfen das Array in der Header Datei zu deklarieren die in jede Quellcodedatei included ist.
Das funktioniert auch, aber ich dachte dann müsste eine Meldung im Stile von "redeclaration of field" kommen.
Warum ist das nicht so ??????
Wo liegt meine Denkfehler ????
Ach ja ich benutzte C und als IDE DevC++ also gcc als Compiler.
Please Help
peecee