J'ai une fonction de recherche dicho. que j'aimerais coder de façon générique.
Implantation\Structure :
- Objet :
typedef struct {
unsigned int TypeObjet; /* Entier définissant*/
char nom[30]; /* le type d'objet */
int idNmElem;
}OBJ_1;
- Liste dans un tableau trié :
typedef struct {
void * tabRechDicho[LGMAX];
int fin;
}LISTE_RECH;
Proto fonction de recherche :
INFO_RECH_D * RechDicho (
LISTE_RECH * lr,
void * Obj,
int typeObj,
int (* Comparer) (void *,void *) /* Fonction */
/* comparaison */
)
Comment éviter le switch case pour caster chaque nouveau type d'objet dans le corps de cette fonction :
if(compare( (type *)tabRechDicho[n].nom , Obj )
{...
}