Tobias B. schrieb:
> Das ist mein Protoyp für die Funktion:
>
1 | void draw_menu (uint8_t, struct MenuEntry );
|
Aha.
Hier sagst du: Die Funktion kriegt als 2. Argument 1 einzelnes Objekt
>
1 | void draw_menu(uint8_t x, struct MenuEntry menu[])
|
2 | >
|
und hier sagst du, die Funktion kriegt ein ganzes Array von Objekten
(d.h. um genau zu sein sagst du hier eigentlich die Funktoin kriegt
einen Pointer auf ein Array)
Der springende Punkt ist aber: Ja, was denn nun? Ein einzelnes Objekt
oder ein Array?
Es ist doch wirklich ganz simpel.
SChreib deine Funktion
1 | void draw_menu(uint8_t x, struct MenuEntry menu[])
|
2 | {
|
3 | lcd_clear();
|
4 | ...
|
5 | lcd_string(menu[x].Text_Zeile2);
|
6 | }
|
nimm die Zeile mit der Funktionsdefinition mittels Strg+C in den Copy
Buffer
1 | void draw_menu(uint8_t x, struct MenuEntry menu[])
|
geh an die Stelle, an der du den Protoypen für die Funktion haben willst
(Header File), setze dort die Zeile mittles Strg+V ein und hänge einen
';' hinten drann
1 | void draw_menu(uint8_t x, struct MenuEntry menu[]);
|
und fertig ist dein Protoyp.
Und wenn der Compiler wieder die Funktionsdefinition anmäkelt, dann
siehst du dir nächstes mal die Datentypen aller Argument (inklusive
Array-[]) genauer an.