Bonjour,
Voici un bout de code issu d'une boucle censée récupérer toutes les options et arguments d'options passés sur la ligne de commande. Ce case appartient à l'argument de l'option -p qui doit être un entier de valeur maximale égale au nombre d'entiers que peut comporter un unsigned long long.
Cependant, voici ce que GCC me dit à la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 case 'p': char *endptr; print_interval_nbr_powers = strtol(optarg, &endptr, 10); if (*endptr != '\0' || print_interval_nbr_powers < 0 || print_interval_nbr_powers > MAX_LEN_UNSIGNED_LONG_LONG) { fprintf(stderr, "Invalid print interval \"%d\". \n", print_interval_nbr_powers); opterr++; } break;
Visiblement c'est la déclaration de mon char * sur la première ligne du case qui le dérange, si je mets une instruction bidonne juste avant, ça passe ! Quelqu'un a-t-il une explication quant à ce comportement ?In function 'main':
error: expected expression before 'char'
error: 'endptr' undeclared (first use in this function)
error: (Each undeclared identifier is reported only once
error: for each function it appears in.)
Merci.
Partager