ソース ファイルに 2 つの構造体があるとします。
struct B {
int x;
};
struct A {
beta y;
};
同等のヘッダー ファイルには、次のものがあります。
typedef B* beta;
typedef A* alpha;
また、これらの関数プロトタイプはヘッダー ファイルで定義されます。
printAplha(alpha);
compare(const beta, const beta);
メイン ファイルには、特定のヘッダー ファイルが含まれており、コードは次のようになります。
alpha one, two;
printAlpha(one);
printAlpha(two);
//everything works fine up to here
compare(one->y, two->y);
私が取得しているコードの最後の行で
main.c:37:20: エラー: 不完全な型へのポインターを逆参照しています
main.c:37:33: エラー: 不完全な型へのポインターを逆参照しています
compare
の引数は型になります(比較関数の引数は変更できないため、再帰的なものです)のラッパー関数を使用できることはわかっていますalpha
が、他の解決策があるかどうかを確認したいと思います。なぜこうなった。
注: 不透明 (OPAQUE) 型を作成するために、構造体定義がソース ファイルに書き込まれています。