taille maximum d'un entier pour un switch
bonjour à tous,
j'ai réalisé le code suivant pour parser certain evenements
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#define CAPAB_START 0x01
#define CAPAB_CAPABILITIES 0x02
#define CAPAB_MODULES 0x04
static struct aCapab
{
const char *type;
int flag;
} capab_opt[] = {
{"START", CAPAB_START},
{"CAPABILITIES", CAPAB_CAPABILITIES},
{"MODULES", CAPAB_MODULES},
};
/*
* CAPAB START
* CAPAB CAPABILITIES :VAR=VALUE {[VAR=VALUE]}
* CAPAB MODULES <module list>
* CAPAB END
*/
int events_capab(int argc, char **argv)
{
const char *type = argv[1];
int flag;
unsigned int i;
for (i=0;i<ASIZE(capab_opt);++i)
{
if (!strcasecmp(capab_opt[i].type, type))
{
flag |= capab_opt[i].flag;
printf("capab match %s => %s\n", capab_opt[i].type, type);
}
}
switch (flag)
{
case CAPAB_START:
printf("START\n");
break;
case CAPAB_CAPABILITIES:
printf("CAPBILITIES\n");
break;
case CAPAB_MODULES:
printf("MODULES\n");
break;
default:
printf("Unknow flag: %d\n", flag);
break;
}
return 0;
} |
tout ce passe bien jusqu'au switch je me retrouve avec des flags inconnus, j'ai du faire une connerie, je n'ai pas trouvé la taille maximum autorisé pour un entier pour la condition switch. Ai-je merdé autre part ? merci à vous