سؤال
أريد استخدام بعض البنية الأساسية في C مثل ما يلي:
struct p {
int a;
int b;
p * next;
}
ومع ذلك ، فإنه يفشل في التجميع مع error: parse error before "p"
على الخط مع p * next;
.
هل لديك أي فكرة عما يمكن أن يكون السبب في هذه المشكلة؟
المحلول
تعيش الهياكل C في مساحة اسم مختلفة ويجب أن تكون محطمة بشكل صريح ، وبالتالي:
struct p {
int a;
int b;
struct p * next;
};
ولا تنسى النسيكي في النهاية! :-)
يمكنك التظاهر بأنك في C ++ هكذا: typedef struct p { /*...*/ } p;
. ولكن أعتقد أن next
لا يزال من الممكن إعلانه على النحو الوارد أعلاه.
لا تنتمي إلى StackOverflow