Estou fazendo o exercício Jogo da adivinhação do livro Introdução à Linguagem C e tudo estava indo muito bem até chegar na parte de usar o ‘for’, aparecendo a mensagem de erro abaixo:
error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
for(int i = 1; i <= 3; i++)
^
note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
Alguém sabe como se resolve isso?
Parece que o livro trata do padrão c99, o teu dev c++ deve estar configurado com o padrão c89, a mensagem de erro fala que o formato como a variável ‘i’ foi declarada só pode ser feito no padrão c99 e no padrão c11, existe duas soluções para você.
1 - Declarar a variável ‘i’ antes do laço for, dessa forma, vou deixar um exemplo simples aqui.
#include <stdio.h>
int main() {
int i;
for(i = 1; i <= 3; i++){
printf("%d\n", i);
}
return 0;
}
2 - Configurar o Dev C++ para usar o padrão ansi iso c99 (recomendado para evitar mais problemas de compatibilidade com os exercícios do livro).
– na barra de ferramentas do dev c++ clique em Ferramentas, depois clique em Opções do Compilador , vai abrir uma janelinha, clique na aba Geração de Código, aonde diz Padrão da Linguagem (-std) selecione para ISO C99 e clique em Ok, agora seu código vai funcionar, e não vai aparecer mais essa mensagem de erro.
Bom estudo.
2 curtidas
Muito obrigado, sua resposta resolveu o problema.
Caso deseja compilar no terminar a dica é utilizar o -std=c99 para o gcc.
Exemplo:
gcc -std=c99 -o arquivo.out arquivo.c
1 curtida
Muito bom, me ajudou bastante estava com o mesmo problema!
Usei esta dica, configurei meu DEVc++ e deu certo. Obrigado.