Funktion mit struct als Argument
-
Hallo,
kann eine Funktion mit einer Struktur aufgerufen werden? Ich habe z.B. folgendes:
struct datenstruktur { int a[8]; double b[8]; } daten;
Mit deisen Daten möchte ich eine Funktion aufrufen. Das hier:
int funktion(daten);
funktioniert leider nicht.
-
int funktion(struct datenstruktur daten) { ... }
-
dabke, das funktioniert.
jetzt habe ich noch das problem, wenn ich mir mitint funktion(struct datenstruktur daten) { ... }
eine funktion definiere, darf der funktionsaufruf erst hinter der funktionsdefinition kommen, da sonst der prototyp fehlt. wenn ich den funktionsprototyp in eine header-datei schreibe, kommt der fehler, dass die funktion doppelt definiert ist.
der prototyp könnte dann ja vielleicht so
int funktion(struct datenstruktur daten)
aussehen. wie kann ich dann die funktion schreiben?
-
der Prototyp im Header sieht so aus
int funktion(struct datenstruktur daten);
Die Funktion im Souce Code
int funktion(struct datenstruktur daten) { DEINE ANWEISUNGEN }
-
dann kommt der fehler "Redeclaration of 'funktion' previously declared at prototypen.h."
-
keiner schrieb:
dann kommt der fehler "Redeclaration of 'funktion' previously declared at prototypen.h."
Hast du es denn genauso gemacht, wie supertux gezeigt hat?? Der Prototyp muss mit Semikolon abgeschlossen werden und ihm dürfen keine geschweiften Klammern mir Rumpf folgen...
-
ja, genau so wie supertux.
Prototyp wie oben,
funktion wie unten.
-
-
wieder fehler:
"Type error in argument 1 to "funktion"
found: "struct datenstruktur"
expected: "incomplete struct datenstruktur"
defined at prototypen.h"in prototypen.h steht "int funktion(struct datenstruktur daten);"
-
Oh klar, du bindest den Header mehrfach ein...
-
wieso kommen diese fehler der doppeldeklaration nicht, wenn ich als prototyp z.b.
int funktion(int parameter);
und als funktion
int funktion(int parameter) { ANWEISUNGHEN }
benutze?
da brauche ich ja auch kein #ifndef
-
poste mal ein komplettes aber minimales Beispiel wo man den Fehler nachvollziehen kann. So wird das Rätselraten...