比方說,我們在源文件中的兩個結構:解引用指向不完全類型
struct B {
int x;
};
struct A {
beta y;
};
在等效頭文件中,我們有這些:
typedef B* beta;
typedef A* alpha;
而且,這些函數原型定義在頭文件中:
printAplha(alpha);
compare(const beta, const beta);
在主文件中,我已經包含了特定的頭文件和代碼看起來l IKE在此:
alpha one, two;
printAlpha(one);
printAlpha(two);
//everything works fine up to here
compare(one->y, two->y);
在代碼的最後一行我得到
main.c:37:20: error: dereferencing pointer to incomplete type
main.c:37:33: error: dereferencing pointer to incomplete type
我知道我可以使用的包裝功能compare
,它的參數是alpha
類型(如比較函數的參數不能改變 - 這是遞歸的),但我想看看是否有其他解決方案,爲什麼會發生這種情況。
注:結構定義已寫入源文件以加密其內部結構。
爲什麼我的問題downvoted?有人可以提供一個理由,以便知道我做錯了什麼嗎? – Chris 2013-03-22 02:09:41