Zitat Zitat von Siro Beitrag anzeigen
Das define xxx wird doch nur einmal durchlaufen, dann is es definiert und dann dürfte der Compiler doch auch nicht versuchen erneut meine Variable anzulegen und deshalb eine Fehler verursachen.
Das ist doch eigentlich nur eine Anweisung für den Compiler, daß er den Block nicht weiter berücksichtigen soll, wenn xxx schon definiert wurde, damit müste doch eine doppel deklaration ausgeschlossen sein.
Aber nur in Bezug auf eine C-Datei. Beim Übersetzen der nächsten C-Datei interessiert es den Compiler einen feuchten Furz was beim Übersetzen der vorigen alles definiert war. Jede C-Datei wird separat (völlig getrennt von den anderen) übersetzt.
Außerdem ist es keine "doppel deklaration", sondern eine doppelte Definition. Das ist ja gerade der Knackpunkt, wäre es eine Deklaration, gäbe es kein Problem. Wenn dir der Unterschied nicht geläufig ist, ist es jetzt höchste Eisenbahn, das mal nachzuschlagen.