有没有办法以循环方式正确定义结构(在C中)?换句话说:
//struct struct1; Is this ok??
struct struct2 {
struct struct1* someStruct1Var;
//Other variables
};
struct struct1 {
//Some variables
struct2* (*someFunc)(struct2* someStruct2Var);
}
我基本上想要的行为是第一个struct有一个变量,它是指向第二个实例的指针(它是一个全局变量,只有1个存在)。然后我希望第二个结构具有返回第一个结构的类型的函数指针。我想要这种行为,以实现基本的面向对象的类/对象。如果有类似的方法可以完成同样的事情,那也会非常有帮助。同样,我需要的是有一个包含函数指针的类struct(struct1),该函数指针作为参数并返回变量对象的类型(struct2)。然后,我需要每个对象都有一个对其全局类变量(类型为struct1)的引用。
谢谢!
答案 0 :(得分:1)
您应该转发声明您的struct
typedef struct struct1 struct1;
typedef struct struct2 struct2;
struct struct2 {
struct1* someStruct1Var;
//Other variables
};
struct struct1 {
//Some variables
struct2* (*someFunc)(struct2* someStruct2Var);
}
使用typedef
帮助来省略struct
关键字来命名类型。