Forum: PC-Programmierung globale Variablen Visual Studio C++


von Dave_ (Gast)


Lesenswert?

Hallo Zusammen.


Eine Frage zu Visual Studio c ++


Ich habe probleme mit globalen Variablen bzw. Vektoren. Ich verstehe
nicht warum mir der Compiler solche Probleme macht. Habe ein extra
Headerfile ersellt .h in welchem ich meine globalen Variaben und
Vektroren habe, allerdings sagt mir der compiler daß es probleme mit
einer .obj datei gibt. Weiß jemand einen Ansatzt für den von mir
beschriebenen Fehler?

David

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vermutlich machst Du den beliebten Anfängerfehler, daß Du globale
Variablen in der Headerdatei nicht deklarierst, sondern definierst.

Damit wird für jedes Modul, das diese Headerdatei einbindet, eine
eigene Kopie der globalen Variable angelegt - und der Linker motzt
zurecht, daß das betreffende Symbol bereits bekannt ist.

Abhilfe: Mach es richtig.

In der Headerdatei die Variablen nur deklarieren (voranstellen von
"extern").

In einer Sourcedatei die Variablen definieren.

Also:

blafusel.h
1
// Deklaration
2
extern int blafusel;

blafusel.c
1
#include "blafusel.h"
2
3
// Definition
4
int blafusel;

sonstwas.c
1
#include "blafusel.h"
2
3
int machwas
4
{
5
  blafusel = 0;
6
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.