# Como resolver o erro (error: 'for' loop initial declarations are only allowed in C99 or C11 mode)?

**URL:** <https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271>\
**Category:** Livros\
**Tags:** introducao-c\
**Created:** [Agosto 10, 2016, 9:39pm UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271 "2016-08-10T21:39:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Juliano1](https://avatars.discourse-cdn.com/v4/letter/j/da6949/32.png) [@Juliano1](https://forum.casadocodigo.com.br/u/Juliano1)\
**Post date:** [Agosto 10, 2016, 9:39pm UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271/1 "2016-08-10T21:39:16Z")

</div>

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?

 ![](https://canada1.discourse-cdn.com/flex029/uploads/casadocodigo/original/2X/4/4d7a21fb3bf5232f1b20bdedfaae4a090945d30e.png)

---

<div class="post-metadata">

**Author:** ![sknix100](https://avatars.discourse-cdn.com/v4/letter/s/54ee81/32.png) [@sknix100](https://forum.casadocodigo.com.br/u/sknix100)\
**Post date:** [Agosto 27, 2016, 3:21pm UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271/2 "2016-08-27T15:21:05Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Juliano1](https://avatars.discourse-cdn.com/v4/letter/j/da6949/32.png) [@Juliano1](https://forum.casadocodigo.com.br/u/Juliano1)\
**Post date:** [Agosto 27, 2016, 10:54pm UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271/3 "2016-08-27T22:54:40Z")

</div>

Muito obrigado, sua resposta resolveu o problema.

---

<div class="post-metadata">

**Author:** ![lucas090594](https://avatars.discourse-cdn.com/v4/letter/l/90db22/32.png) [@lucas090594](https://forum.casadocodigo.com.br/u/lucas090594)\
**Post date:** [Janeiro 8, 2017, 7:29pm UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271/4 "2017-01-08T19:29:08Z")

</div>

Caso deseja compilar no terminar a dica é utilizar o -std=c99 para o gcc.  
Exemplo:  
gcc -std=c99 -o arquivo.out arquivo.c

---

<div class="post-metadata">

**Author:** ![AnaCarolineFR](https://avatars.discourse-cdn.com/v4/letter/a/e99b99/32.png) [@AnaCarolineFR](https://forum.casadocodigo.com.br/u/AnaCarolineFR)\
**Post date:** [Outubro 6, 2021, 2:46pm UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271/5 "2021-10-06T14:46:44Z")

</div>

Muito bom, me ajudou bastante estava com o mesmo problema!

---

<div class="post-metadata">

**Author:** ![VetusAle](https://avatars.discourse-cdn.com/v4/letter/v/58956e/32.png) [@VetusAle](https://forum.casadocodigo.com.br/u/VetusAle)\
**Post date:** [Outubro 23, 2023, 1:02am UTC](https://forum.casadocodigo.com.br/t/como-resolver-o-erro-error-for-loop-initial-declarations-are-only-allowed-in-c99-or-c11-mode/271/6 "2023-10-23T01:02:09Z")

</div>

Usei esta dica, configurei meu DEVc++ e deu certo. Obrigado.
