Wohin mit der Struktur Definition
-
Hallo ich möchte eine Struktur in mehreren Funktionen (unterschiedliche Dateien) benutzen, wie und wo muß ich sie definieren damit sie bekannt sind.
Danke
-
Ich würde sagen, vor den Dateien
Oder in einem globalen Header...
Oder in jeder Datei mit include-guards...
-
Hi,
dazu muss die Strukturdeklaration überall dort bekannt sein, wo du sie verwenden möchtest.
In diesem Falle ist sie wohl am Besten in einer Headerdatei aufgehoben, die du mit #include dann in jeder benötigten Datei einbindest.PS:
Das solltest du unbedingt noch einmal in einem C-Buch nachlesen.
Dieses Kapitel ist eins der wichtigsten für die Programmierung mit C.
-
ich drück mich mal ein wenig genauer aus:
in der a.h gibt es die Struktur S
und die Funktionsdeklaration int f1(struct A);in der b.h möchte eine Funktion f2 deklarieren --> int f2(struct A)
jetzt meckert der compiler das ich die struktur neu anlegen will
Kann ich die Struktur in einem eigenen header anlegen und diese in a.h und b.h includen? Sowas macht man doch eigentlich nicht oder?
-
sorry, struct A = struct S
-
Nein, i.d.R. definierst du, wie bereits gesagt, das Strukt vor den "Dingen", die es benötigen. Beim inkludieren musst du dann aber ggf. auf die Reihenfolge achten!
-
Okay, Danke, jetzt hab ichs verstanden und jetzt ist der compiliert er auch artig