un truc possible :
déclarer un structure du genre
struct CONV_DATA { const char* name; void* addr; int type; };
des defines du genre #define TYPE_INT #define TYPE_STR;
des variables du genre int var1; int var2; char str1[32];
un tableau du genre const CONV_DATA data[] = { {"var1", &var1, TYPE_INT}, {"var2", &var2, TYPE_INT}, {"str1", str1, TYPE_STR} };
une fct du genre : void* FindVar(const char* name, int* type) { for(int i = 0; i < sizeof(data)/sizeof(data[0]); i++) { if(strcmp(data[i].name, name) == 0) { if(type != NULL) *type = data[i].type; return data[i].addr; } } return NULL; }
se servir ensuite de cette fct, de l'adresse retournée et du type pour manipuler la variable
|