Estoy tratando de resolver el problema 3n + 1 y tengo un for
bucle que se ve así:
for(int i = low; i <= high; ++i)
{
res = runalg(i);
if (res > highestres)
{
highestres = res;
}
}
Desafortunadamente, recibo este error cuando intento compilar con GCC:
3np1.c: 15: error: declaración inicial de bucle 'for' utilizada fuera del modo C99
No sé qué es el modo C99. ¿Algunas ideas?
Hay un conmutador de compilador que habilita el modo C99 , que entre otras cosas permite la declaración de una variable dentro del bucle for. Para activarlo, use el modificador del compilador
-std=c99
O como dice @OysterD, declare la variable fuera del ciclo.
fuente
Para cambiar al modo C99 en CodeBlocks , siga los siguientes pasos:
Haga clic en Opciones de proyecto / compilación , luego en la pestaña Configuración del compilador, elija la subpestaña Otras opciones , colóquela
-std=c99
en el área de texto y haga clic en Aceptar .Esto activará el modo C99 para su compilador.
¡Espero que esto ayude a alguien!
fuente
-std=gnu99
como se muestra en algunas respuestas anteriores!También he recibido este error.
no es válido en el estándar C89 / C90. Como dice OysterD, debe hacer:
Su código original está permitido en C99 y estándares posteriores del lenguaje C.
fuente
@Blorgbeard :
Nuevas funciones en C99
http://en.wikipedia.org/wiki/C99
Un recorrido por C99
fuente
si compila en C cambia
a
También puede compilar con el conjunto de conmutadores C99. Ponga -std = c99 en la línea de compilación:
REF: http://cplusplus.syntaxerrors.info/index.php?title= 'for'_loop_initial_declaration_used_outside_C99_mode
fuente
Para cualquiera que intente compilar código desde una fuente externa que use una utilidad de compilación automatizada como Make , para evitar tener que rastrear las llamadas explícitas de compilación de gcc, puede establecer una variable de entorno. Ingrese en el símbolo del sistema o ingrese .bashrc (o .bash_profile en Mac):
Tenga en cuenta que se aplica una solución similar si se encuentra en un escenario similar con la compilación de C ++ que requiere C ++ 11, puede usar:
fuente
Tuve el mismo problema y funciona, solo tienes que declarar el
i
exterior del ciclo:fuente
Jihene Stambouli respondió la pregunta de OP de manera más directa ... La pregunta fue; por que
producir el error;
para lo cual la respuesta es
debiera ser
fuente
Habilite el modo C99 en Code :: Blocks 16.01
fuente
Para Qt-creator: simplemente agregue las siguientes líneas al archivo * .pro ...
fuente