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.