Ich habe eine unter1.d und eine unter1.c in unter1.h definiere ich ... int x; #define macheetwas() x = (y) in unter1.c #include "unter1.h" Wenn ich jetzt kompiliere alles wunderbar. Wenn ich in der main() nun die unter1.h include #include "unter1.h" meckert der Compiler: multiple definition of `x' Wird vermutlich ein einfaches Problem sein. MFG
:
Verschoben durch User
Ja, was erwartest du auch? Deswegen schreibt man keine Definitionen (hier: int x;) in Headerdateien. Aber das wird hier im Forum alle zwei Wochen bis zum Erbrechen durchgekaut. Such dir einfach einen der dreißig Millionen "multiple definitions"-Threads. Egal welchen.
In Headern sollten Variablen nur deklariert werden, nicht definiert. Die Zeile
1 | int x; |
im Header muss es lauten
1 | |
2 | extern int x; |
Die Definition von "x" kommt dann nach unter1.c Sonst definiert jedes #include von unter1.h die Varriable x und der Linker ist entsprechend verwirrt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.