2011-05-04 8 views
10

Possible Duplicate:
How do I fix “for loop initial declaration used outside C99 mode” GCC error?„dla” pętli początkowej deklaracji stosowanych poza trybie C99

Dlaczego muszę zadeklarować zmienną pętli poza instrukcji for pętli? Otrzymuję gcc (MacOSX) Błąd, który brzmi:

błędzie: „za” pętli początkowej deklaracji stosowanych poza trybie C99

Gdybym określić mój zmiennej pętli poza instrukcji pętli następnie gcc przestaje skargę.

+0

Ponieważ w ANSI C i C89 zmienne mogą być zadeklarowane tylko w zakresie pliku lub na początku bloku. C99 wprowadziło deklarację zmiennych wewnątrz klauzuli "for". –

+0

Rozważ użycie Clanga zamiast GCC na Mac OS X. Apple nie zaktualizuje GCC w najbliższej przyszłości. –

+0

Dokładny duplikat pytania, z którym Chuck był powiązany. To powiedziawszy, po prostu ustaw -std = c99 lub -std = gnu99 i wszystko gotowe. –

Odpowiedz

15

Jak sugeruje błąd, to dlatego, deklarując zmienną wewnątrz warunku w pętli for nie wolno było aż do C99 i używasz starszego standardu języka. Jeśli kompilujesz bezpośrednio, użyj flagi -std=c99. W Xcode przejdź do opcji "Kompilator - Język" dla swojego celu i ustaw Standard Językowy na C99 lub GNU99.

3

Należy skompilować z opcją -std=c99.

Na przykład:

$ gcc -std=c99 code.c