[AJUDA] Erro c99 Mode - CodeBlocks - C

Bom dia

Estou com o seguinte erro, alguém poderia me ajudar a solucionar?

Desde já agradeço.


Olá,

A declaração de variáveis no meio de funções não era permitido em padrões antigos da linguagem C. Tinha que declarar todas no início da função, só assim o compilador sabia determinar como alocar as variáveis antes da execução.
Na versão “C99” da linguagem é que a declaração dentro das funções (isso inclui na inicialização do for) passou a ser permitida, por isso a mensagem “só é permitido no modo C99”.

Para resolver tem 2 jeitos:

  1. Mudar o programa para não declarar variáveis no meio da função, mas sim no início dela:
int main(void)
{
       int m;
       int n;

       //....

       for (m = 0; //.....   m já está declarado no início
             for (n = 0; //......
  1. Colocar as opções do compilador que ele recomenda para funcionar de acordo com o padrao C99

Declaração da variável do loop dentro do “for”, como você fez, só é válida em C++ ou então em C99 (a última especificação da linguagem C e que não é totalmente compatível com o C++).

Você realmente quer escrever um programa em C mesmo ou então em C++?

[quote=gomesrod]Olá,

A declaração de variáveis no meio de funções não era permitido em padrões antigos da linguagem C. Tinha que declarar todas no início da função, só assim o compilador sabia determinar como alocar as variáveis antes da execução.
Na versão “C99” da linguagem é que a declaração dentro das funções (isso inclui na inicialização do for) passou a ser permitida, por isso a mensagem “só é permitido no modo C99”.

Para resolver tem 2 jeitos:

  1. Mudar o programa para não declarar variáveis no meio da função, mas sim no início dela:
int main(void)
{
       int m;
       int n;

       //....

       for (m = 0; //.....   m já está declarado no início
             for (n = 0; //......
  1. Colocar as opções do compilador que ele recomenda para funcionar de acordo com o padrao C99[/quote]

Obrigado, pelo jeito a segunda opção é a que realmente vai dar certo!

[quote=entanglement]Declaração da variável do loop dentro do “for”, como você fez, só é válida em C++ ou então em C99 (a última especificação da linguagem C e que não é totalmente compatível com o C++).

Você realmente quer escrever um programa em C mesmo ou então em C++? [/quote]

Na verdade eu estou estudando C porque comecei estudando JAVA e consegui entender os código só não consegui aplicar pelo motivo de ser orientada objeto e bla bla bla. me aconselharam a estudar codigo estruturado desde o C, C++ até JAVA
então estou fazendo nessa ordem. Estou estudando sozinho na internet sem nenhuma DICA ou uma DIREÇÃO. Ja tou pra pirar de tanta teoria. fiz o C++ da Caelum e nao gostei. estou fazendo C de uma apostila que eu achei dae vou terminar.