我在一个普通的 C (嵌入式项目,很少的内存)中工作,我有一个结构
typedef struct
{
int x;
int y;
int z;
float angle;
float angle1;
float angle2;
} Kind1;
有些情况下我需要所有字段,有些情况下我只需要 x、y 和角度。
在 C++ 中,我将创建一个具有这 3 个字段的基类,从它继承另一个具有额外 3 个字段的类,并根据需要实例化一个或另一个。如何在纯 C 中模拟这种行为?
我知道我可以做出类似的东西
typedef struct
{
int x;
int y;
float angle;
} Kind1;
typedef struct
{
Kind1 basedata;
int z;
float angle2;
float angle3;
} Kind2;
但随后我无法将指针传递给 Kind2 ,其中请求了指向 Kind1 的指针。
我知道可以对指针进行类型转换和偏移,我只是想知道是否有更好、更安全的方法。