1
我想用一些基本的結構用C這樣的:「解析錯誤」,在結構聲明
struct p {
int a;
int b;
p * next;
}
但是,它未能與p * next;
行與error: parse error before "p"
編譯。
你有什麼想法可以解決這個問題嗎?
我想用一些基本的結構用C這樣的:「解析錯誤」,在結構聲明
struct p {
int a;
int b;
p * next;
}
但是,它未能與p * next;
行與error: parse error before "p"
編譯。
你有什麼想法可以解決這個問題嗎?
C的結構生活在一個不同的命名空間,必須要明確範圍的,即:
struct p {
int a;
int b;
struct p * next;
};
和結束時不要忘了分號! :-)
你可以假裝你在C++:typedef struct p { /*...*/ } p;
。但我認爲next
仍然會如上所述。
你說得對,'struct p * next;'仍然需要typedef,因爲typedef'd name * p *還不在範圍內。 – 2010-03-30 08:02:55