Déclaration d'une variable en début de case d'un switch
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.
Code:
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; |
Cependant, voici ce que GCC me dit à la compilation :
Citation:
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.)
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 ?
Merci.