C: pour la boucle int déclaration initiale
Quelqu'un peut-il des précisions sur la suite gcc erreur?
$ gcc -o Ctutorial/temptable.out temptable.c
temptable.c: In function ‘main’:
temptable.c:5: error: ‘for’ loop initial declaration used outside C99 mode
temptable.c:
...
/* print Fahrenheit-Celsius Table */
main()
{
for(int i = 0; i <= 300; i += 20)
{
printf("F=%d C=%d\n",i, (i-32) / 9);
}
}
P. S: j'ai vaguement rappeler que int i
doit être déclarée avant d'un for
boucle. Je dois dire que je suis à la recherche d'une réponse qui donne un contexte historique de C standard.
- Découvrez cette question précédente relative aux C déclaration de variable pour plus d'info: stackoverflow.com/questions/288441/...
Vous devez vous connecter pour publier un commentaire.
est une syntaxe qui a été introduit en C99. Pour l'utiliser, vous devez activer C99 mode en passant
-std=c99
(ou, plus tard, certains standard) à GCC. Le C89 version:MODIFIER
Historiquement, le langage C toujours forcé les programmeurs de déclarer toutes les variables au début d'un bloc. Donc quelque chose comme:
doit être réécrit comme suit:
un bloc est défini comme:
C99, C++, C# et Java permettent de déclaration des variables n'importe où dans un bloc.
La vraie raison (devinettes) est à affecter les structures internes (comme le calcul de la taille de la pile) le plus tôt possible lors de l'analyse du code source en C, sans aller pour une autre passe de compilateur.
Avant de C99, vous avez eu à définir les variables locales en début de bloc. C99 importé le C++ fonctionnalité que vous pouvez mélanger local des définitions de variables avec les instructions et vous pouvez définir des variables dans la
for
etwhile
contrôle expressions.