Je reçois l'erreur ci-dessous, quel est le mode std = c99/std = gnu99?
code source:
#include <stdio.h>
void funct(int[5]);
int main()
{
int Arr[5]={1,2,3,4,5};
funct(Arr);
for(int j=0;j<5;j++)
printf("%d",Arr[j]);
}
void funct(int p[5]) {
int i,j;
for(i=6,j=0;i<11;i++,j++)
p[j]=i;
}
Error Message:
hello.c: In function ‘main’:
hello.c:11:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for(int j=0;j<5;j++)
^
hello.c:11:2: note: use option -std=c99 or -std=gnu99 to compile your code`
Cela est dû au fait que la déclaration de variables dans une boucle for n'était pas valide C jusqu'à C99 (qui est la norme de C publiée en 1999). Vous pouvez donc déclarer votre compteur en dehors de pour comme indiqué par d'autres ou utiliser l'indicateur -std = c99 de dire explicitement au compilateur que vous utilisez cette norme et qu'il devrait l'interpréter comme tel.
Vous devez déclarer la variable j utilisée pour la première boucle for avant la boucle.
int j;
for(j=0;j<5;j++)
printf("%d",Arr[j]);
La solution la plus simple du "Prof. Dr. Michael Helbig". il passera votre mode à c99 afin que vous n'ayez pas à ajouter d'indicateur à chaque fois dans le fichier make http://www.bigdev.de/2014/10/Eclipse-cc-for-loop-initial .html? showComment = 1447925473870 # c6845437481920903532
Solution: utilisez l'option -std = c99 pour votre compilateur! Allez à: Projet> Propriétés> Buils C/C++> Paramètres> Paramètres d’outil> Compilateur GCC C> Dialecte> Langage standard: choisissez "ISO C99"