globale Variablen Visual Studio C++

Gast #417595
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
Persönliche Seite #417596
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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren