.Header Dateien mehrmals #include ohne "multiple definition"?

Gast #4390684
Lesenswert?
• ▲
▼
Guten Tag,
die Frage die jetzt kommt wird sehr "Basic" sein.

Wenn ich mit .h Dateien arbeite. Dann habe ich in einer dieser z.B. eine 
Variable.

Jetzt möchte ich diese Variable in main.c und ext_main.c nutzen. Also ->
1
#include "meine.h"
in beiden.

Dies führt unweigerlich zum Fehler "multiple definitions in xxx.o".

Darf ich Fragen wie der professionelle Umsetzer so etwas umsetzt :D?
Vielen Dank u. mfG.
Rudii
#4390688
Lesenswert?
• ▲
▼
Der Trick liegt in dem Unterschied zwischen "Definition" und 
"Deklaration". Ersteres ist in C nur einmal erlaubt und Letzteres 
beliebig oft.

Der Trick ist jetzt die (globale) Variable innerhalb einer C-Datei zu 
definieren (=Speicher anzulegen). In den Header-Dateien deklarierst du 
die Variable nur noch mit dem Schlüsselwort "extern".

Gruß
Dennis

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.