Globale Variable
-
ich habe ien kleines Problem mit der globale varible:
//---------------hier ist die main.cpp datei
#include" test1.cpp"void main()
{
int km[100];
}//-------------------hier ist die test.cpp-datei
blablabla
km[i];-----------
Es kommt die Fehlermeldung dass km nicht definiert ist. Was mache ich denn falsch??
DANKE SCHÖN SCHON MAL...
-
ohne jetzt irgendwie bockzu haben das zu sagen aber
#include" test1.cpp"------- != --------- test.cpp
ausserdem musst eh pointer nehmen.
-
km ist nicht global sondern lokal in der 'main'.
wenn, dann somain.cpp:
int km[100]; #include" test1.cpp" void main() { }
test1.cpp:
// irgendwie auf km zugreifen
-
DANKE, es funzt wie net sag, also km vor include
-
Absolute Anfängerin schrieb:
DANKE, es funzt wie net sag, also km vor include
jo, aber das #includen von cpp-dateien sollteste trotzdem nicht machen. besser isses so:
datei1
int km[100]; void main() { }
datei2
extern int km[100]; // irgendwie auf km zugreifen
-
Danke für den tipp!!!!
Und kannst du evtl. bitte etwas mehr erklären, warum man es nicht include .cpp machen soll??
-
.h bzw. .hpp sind Header-Dateien, diese sind zum includieren, da sie nur Vordefinitionen enthalten (sollten).
.cpp sind Übersetzungseinheiten mit Definitionen, d.h. der Compiler übersetzt diese. Pro cpp-Datei wirst du am Ende (nach dem Compilieren) eine .obj-Datei vorfinden. Jede .cpp-Datei includiert nur die Header, die sie benötigt. Da du aber Funktionen, Typen und Variablen nur einmal definieren darfst, hättest du beim cpp-includieren Mehfachdefinitionen -> error!
Wenn du cpps includierst, machst du ja sozusagen aus mehreren cpps eine große Übersetzungseinheit, was nicht Sinn der Sache ist. Hat den Nachteil, das der Compiler immer alles neu compilieren muß, obwohl du z.B. nur an einer cpp was geändert hast. Ansonst könntest du ja auch gleich alles in eine cpp schreiben.
-
Artchi schrieb:
.h bzw. .hpp sind Header-Dateien, diese sind zum includieren, da sie nur Vordefinitionen enthalten (sollten).
Was sind Vordefinitionen?
cpp sind Übersetzungseinheiten mit Definitione
Übersetzungseinheiten sind vereinfacht gesprochen die Teile, die entstehen nachdem der Präprozessor eine cpp-Datei bearbeitet hat.