Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

error: 'for' loop initial...

Olá, Para quem está usando o Windows e instalou o Mingw/GCC ao tentar compilar um código usando: for(int i = 1; i <=3; i++){}

pode se deparar com a mensagem: "error: 'for' loop initial declartions are only allowed in c99 mode"

para resolver isso é só usar: gcc -std=c99 meuprograma.c -o meuprograma.exe

5 respostas

Ótima dica, Ricardo!

Valeu pela dica, Ricardo mas, porque dá esse erro?

Eu também sou iniciante em C. Pelo que entendi existe padrões usados pelos compiladores. Nesse caso do Mingw/GCC, ele não aceita a declaração e inicialização de uma variável dentro de um for como:

for (int i = 0; i < 3; i++)

teríamos que fazer:

int i;

for( i = 0; i < 3; i++) ;

Talvez por isso que para rodar o primeiro código for (int i = 0; i < 3; i++) seja preciso utilizar o seguinte parâmetro: gcc -std=c99. Caso queira compilar sem utilizar o parâmetro deve ser feita a declaração fora do for. Vi que o professor Mauricio está utilizando o Mac OS X, nesse caso compila normal. Tentei no Windows e no Linux e ele apresentou o mesmo erro.

Pesquisei um pouco e encontrei a estrutura do for no livro C Completo e Total e no livro [Treinamento em Linguagem C](Link: http://www.amazon.com.br/dp/8576051915). Em ambos a variável está sendo declarada fora do for.

Isso é o pouco que sei a respeito desse assunto, talvez o professor Maurício Aniche possa esclarecer melhor.

Abraços.

solução!

É isso mesmo, Ricardo. Existem muitos compiladores diferentes, cada um com suas regras. Compiladores de C mais antigos (e mais chatos) não gostam da inicialização de variáveis dentro de fors. Outros já não ligam pra isso!

Ok. perfeito!