Muszę odwołać się do struktury, która nie została jeszcze zdefiniowana, ponieważ struktura faktycznie zawiera prototyp funkcji typedef'd.Prototyp funkcji C typedef ze strukturą próbującą odwoływać się przed zdefiniowaniem.
Na przykład
typedef int (MyCallbackFunction)(X * x, void * ctx);
typedef struct CallbackData {
MyCallbackFunction * callback;
void * ctx;
} CallbackData;
typedef struct X {
char a;
int b;
int c;
double d;
CallbackData e;
} X;
Jaki jest prawidłowy sposób, aby rzeczywiście napisać ten kod/nagłówek?
Czy to zadziała, jeśli przekażę funkcję zwrotną, która używa na przykład: 'int callback (X * x, void * ctx)', czy kompilator będzie narzekał, że 'X' różni się od' struct X'? –
Przepraszam, naprawiłem to - generalnie wolę nadać "struct" i jego typedef różne nazwy, dzięki czemu można jednoznacznie odnieść się do obu w razie potrzeby. Zobacz edycję. –