J'ai une structure qui contient un attribut qui peut prendre plusieurs types, Je souhaite connaître la méthode la plus appropriée pour déclarer cet attribut.Déclaration de l'attribut struct avec un type différent
Exemple:
struct
{
void* pShape; //poiter to the shape that will be casted on *tCircle or *tRectangle
int type;//type of the shape
int h;
int l;
}tImage;
struct{
int size;
int r;
HANDLE calcul;
}tCircle
struct{
int size;
int x;
int y;
HANDLE calcul;
}tRectangle;
Comme vous le voyez ici en utilisant i'am void * de déclarer un pointeur à la forme et utiliser l'attribut de type de deviner le type de la forme.
c'est ma fonction pour la calcuation de la taille de la forme dans une image
int Image_Get_ShapeSize(tImage Im)
{
switch (Im.type)
{
case CIRCLE:
((tCircle*)(Im.shape))->calcul();
break;
case RECTANGLE:
((tRectangle*)(Im.shape))->calcul();
break;
default:
break;
}
}
que pensez-vous à ce sujet est une bonne méthode?
Comment définit-on '? En anse – sjsam
Je suggère de créer des fonctions spécifiques pour toutes les formes. – bzeaman
Copie possible de [C struct to void \ * pointeur] (http://stackoverflow.com/questions/10319080/c-struct-to-void-pointer) –