PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C: Variablenproblem


mf_2
2004-02-19, 14:51:51
Hallo,

Ich habe ein C-Programm mit drei Dateien.

datei1.c:

#include <stdio.h>
#include <datei2.h>

int main(void)
{

funktion();
printf("%i",variable);

return 0;

}



datei2.h



int funktion();



datei2.c



#include <stdio.h>

int variable = 0;
int funktion(void)
{

variable = 1;


return 0;
}




Das ist natürlich nicht das komplette Programm, ich habs aufs wesentliche beschränkt.
Wenn ich das so jetzt kompilieren will, sagt der Compiler mir, dass es in Zeile 8 von datei1.c einen Fehler gibt, weil variable nicht deklariert ist.
Muss ich da noch was in die h-datei reinschreiben?
das eigentliche deklarieren soll nämlich erst in datei2.c stattfinden. Ich kenn mich mit h-Dateien ned so aus.
Könnt ihr mir weiterhelfen?

HajottV
2004-02-19, 15:27:30
Hiho... da fehlt die "extern" Deklaration. Hab jetzt aber leider keine Zeit, um da ins Detail zu gehen.

Gruß

Jörg

MeLLe
2004-02-19, 15:47:54
datei1.c:

#include <stdio.h>
#include <datei2.h>

extern int variable;

int main(void)
{

funktion();
printf("%i",variable);

return 0;

}

mf_2
2004-02-19, 16:51:29
Thx.

zeckensack
2004-02-19, 17:39:30
Original geschrieben von MeLLe

extern int variable;
Ist korrekt, aber das gehört IMO in datei2.h :)

Btw sollte auch datei2.c datei2.h einbinden. Das bringt überhaupt nichts ... solange alles stimmt. Aber der Compiler kann dann erkennen, wenn mal die Deklaration einer Funktion falsch ist.
(der Linker ist dafür zu dumm, was fatale Folgen haben kann)

MeLLe
2004-02-20, 07:50:54
Original geschrieben von zeckensack
Ist korrekt, aber das gehört IMO in datei2.h :)
Hoppsala ... da hab ich wohl die falsche Datei gequoted :D
Merci, Zecki.