有没有办法以循环方式(在C中)正确定义结构?换一种说法:
//struct struct1; Is this ok??
struct struct2 {
struct struct1* someStruct1Var;
//Other variables
};
struct struct1 {
//Some variables
struct2* (*someFunc)(struct2* someStruct2Var);
}
我基本上想要的行为是第一个结构具有一个变量,该变量是第二个实例的指针(这是一个全局变量,将仅存在1)。然后,我希望第二个结构具有返回第一个结构的类型的函数指针。我想要这种行为,以实现基本的面向对象的类/对象。如果有类似的方法可以完成相同的事情,那也将非常有帮助。再次,我需要有一个包含函数指针的类struct(struct1),该函数指针将参数作为对象并返回对象(struct2)的类型。然后,我需要每个对象对其全局类变量(其类型为struct1)的引用。
谢谢!
最佳答案
您应该转发声明您的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
关键字来命名类型。关于c - 在C中彼此定义结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22156136/