Je travaille en C simple (projet embarqué, peu de mémoire) et j'ai une structure
typedef struct
{
int x;
int y;
int z;
float angle;
float angle1;
float angle2;
} Kind1;
Il y a des cas où j'ai besoin de tous les champs, et d'autres où je n'ai besoin que de x, y et angle.
En C++, je créerais une classe de base avec ces 3 champs, j'hériterais d'une autre classe avec 3 autres champs et j'instancierais l'une ou l'autre selon les besoins. Comment puis-je émuler ce comportement en C ordinaire ?
Je sais que je peux faire quelque chose comme
typedef struct
{
int x;
int y;
float angle;
} Kind1;
typedef struct
{
Kind1 basedata;
int z;
float angle2;
float angle3;
} Kind2;
mais alors je ne peux pas passer le pointeur à Kind2 où un pointeur à Kind1 est demandé.
Je sais qu'il est possible d'effectuer un typage et de décaler le pointeur, mais je me demande s'il existe une meilleure méthode, plus sûre.