Variable in Header Datei

Gast #981530
Lesenswert?

Hallo

Danke für die Antwort! Aber ich meinte, dass man die Variable in der 
main.h ohne Fehler des compilers setzen kann, aber sobald ich sie 
initiallisiere (int variable = 10), bekomme ich den Fehler multiple 
definition. Obwohl ich sie noch nirgends aufgerufen oder verändert habe. 
Lasse ich dass initiallisieren weg (int variable) geht alles ohne 
Fehler. Wo ist da der Unterschied??
Frank
Moderator Persönliche Seite #981538
Lesenswert?

Frank wrote:

> Lasse ich dass initiallisieren weg (int variable) geht alles ohne
> Fehler. Wo ist da der Unterschied??

Lässt du das Initialisieren weg, dann wird die Variablendefinition
vom Compiler einfach nur als Deklaration gewertet.  Das ist ein Tribut
an die Unix-Geschichte, da die ersten Compiler von Kernighan und
Ritchie diese Art Mehrfachdeklaration ebenfalls unterstützt haben.
Der Standard gestattet diese Variante, verpflichtet einen Compiler
aber nicht, sich so zu verhalten.

Du kannst den GCC auch strikt über jede doppelte Definition meckern
lassen, indem du -fno-common als Option mit angibst.

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