typedef void (StateFctPtr*)(type_Dispatcher*pSM); typedef struct tag_StateMachine { StateFctPtr *FunctionPointers; UINT32 currentIdx; UINT32 stateCount; } type_Dispatcher; die typendeklaration des funktionspointer kennt den struct_typ nicht, und wenn ich es umdrehe, dann kennt das struct den funktionspointertyp nicht... und nun? danke mal...
>typedef void (StateFctPtr*)(type_Dispatcher*pSM);
Ziemlich bescheuert einen Funktionsprototypen
mit einem typedef vorne weg anzugeben.
Verwende nicht den neuen Typ beim Funktionspointer, sondern die struct mit einer Vorwärtsdeklaration. (Nebenbei: der Stern beim Funktionspointer ist auf der falschen Seite)
1 | struct tag_StateMachine; |
2 | |
3 | typedef void (*StateFctPtr)(struct tag_StateMachine *pSM); |
4 | |
5 | typedef struct tag_StateMachine |
6 | {
|
7 | StateFctPtr *FunctionPointers; |
8 | UINT32 currentIdx; |
9 | UINT32 stateCount; |
10 | } type_Dispatcher; |
ah, danke Stefan... ja, das ist mir auch aufgefallen, mit dem Stern auf der falschen seite, danke. danke simon @dummy: das ist kein Prototyp, das ist eine Typendeklaration, und zwar der Typ "Zeiger auf Funktionen deren Prototyp gemäss Deklaration beschaffen ist" sowas ist hilfreich um Functionszeigerarrays zu deklarieren: StateFctPtr Funktionszeiger[] = { Fct1, Fct2, ... };
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.