2011-05-04 9 views
10

Possible Duplicate:
How do I fix “for loop initial declaration used outside C99 mode” GCC error?‘per’ dichiarazione iniziale del ciclo utilizzato al di fuori modalità C99

Perché devo dichiarare una variabile di ciclo al di fuori dell'istruzione for ciclo? Sto ottenendo un errore di gcc (MacOSX) che recita:

errore: ‘per la’ dichiarazione iniziale del ciclo utilizzato al di fuori modalità C99

Se io definisco la mia variabile di ciclo al di fuori della dichiarazione ciclo quindi gcc smette di lamentarsi.

+0

Perché, in ANSI C e C89, le variabili possono essere dichiarate solo nell'ambito del file o all'inizio di un blocco. C99 ha introdotto la dichiarazione delle variabili all'interno di una clausola 'for' loop. –

+0

Considerare l'utilizzo di Clang anziché GCC su Mac OS X. Apple non aggiornerà GCC nel prossimo futuro. –

+0

Esatto duplicato della domanda a cui Chuck ha collegato. Detto questo, basta impostare -std = c99 o -std = gnu99 e tutto è pronto. –

risposta

15

Come suggerisce l'errore, questo è dovuto al fatto dichiarazione di una variabile all'interno della condizione di un ciclo for non era consentito fino C99, e si utilizza un linguaggio standard più vecchio. Se stai compilando direttamente, usa il flag -std=c99. In Xcode, vai alle opzioni "Compilatore - Lingua" per il tuo obiettivo e imposta lo standard della lingua su C99 o GNU99.

3

È necessario compilare con l'opzione -std=c99.

Ad esempio:

$ gcc -std=c99 code.c 
Problemi correlati