bonjour à tous,
j'ai réalisé le code suivant pour parser certain evenements
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager