![](/img/trans.png)
[英]Best Way to Declare and Define Initialized Const Structs that Reference each Other
[英]Define structs in terms of each other in C
有没有办法以循环方式(在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
关键字来命名类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.