構造体がtypedefされた関数プロトタイプを実際にconatinsするので、まだ定義されていない構造体を参照する必要があります。例えば、typedef関数のプロトタイプで、構造体が定義される前に参照しようとしています。
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;
実際にこのコード/ヘッダを書き込むための有効な方法は何
をですか?
'int callback(X * x、void * ctx)'などのコールバック関数を渡すと、 'X'が' struct X'と違うとコンパイラが苦情を言いますか? –
申し訳ありませんが、私はそれを修正しました - 一般的に 'struct'とそのtypedefに異なる名前を与えて、必要に応じて両方を明白に参照できるようにしたいと思います。編集を参照してください。 –