2011-05-04 25 views
10

Possible Duplicate:
How do I fix “for loop initial declaration used outside C99 mode” GCC error?‘por’ declaración inicial de asa utilizado fuera el modo C99

¿Por qué debo declarar una variable de bucle exterior de la instrucción for bucle? Estoy recibiendo un error de gcc (MacOSX), que dice:

de error: ‘por’ declaración inicial de asa utilizado fuera el modo C99

Si defino mi variable de bucle exterior de la sentencia de bucle y luego deja de gcc en las protestas.

+0

Porque, en ANSI C y C89, las variables solo se podían declarar en el ámbito del archivo o al principio de un bloque. C99 introdujo la declaración de variables dentro de una cláusula de bucle 'for'. –

+0

Considere utilizar Clang en lugar de GCC en Mac OS X. Apple no actualizará GCC en el futuro previsible. –

+0

Duplicado exacto de la pregunta a la que Chuck se relacionó. Dicho esto, simplemente establece -std = c99 o -std = gnu99 y ya está todo listo. –

Respuesta

15

Como sugiere el error, esto se debe declarar una variable dentro de la condición de un bucle para que no se le permitió hasta C99, y está utilizando un estándar de lengua más antigua. Si está compilando directamente, use el indicador -std=c99. En Xcode, vaya a las opciones de "Compilador - Idioma" para su objetivo y configure el Estándar de idioma en C99 o GNU99.

3

Debe compilar con la opción -std=c99.

Por ejemplo:

$ gcc -std=c99 code.c 
Cuestiones relacionadas