Jump to content

[Resolvido] Erro e não sei a razão dele


Acqua

Recommended Posts

boas! tava eu entretido a fazer os exemplos do livro "linguagem c" quando me deparo com uma situação estranha: chego ao capitulo das funções e procedimentos e nos 2 primeiros exemplos que dão sobre funções (para quem tem o livro, prog0503 e prog0504) e dá-me um erro igual em ambos. Aqui vai um exemplo:

Exercicio: que apareça o output

***

*****

*******

*****

***

Código:

#include <stdio.h>

linha3x()
{
         int i;
         for (i=1 ; i<=3 ; i++)
         putchar('*');
         putchar('\n');
}

linha5x()
{
         int i;
         for (i=1 ; i<=5 ; i++)
         putchar('*');
         putchar('\n');
}

linha7x()
{
         int i;
         for (i=1 ; i<=7 ; i++)
         putchar('*');
         putchar('\n');
}

main()
{
      linha3x();
      linha5x();
      linha7x();
      linha5x();
      linha3x();
}

erro: linha 4,12 e 20 - ISO C++ forbids declaration of `linha' with no type

pergunta: qual a razão para este erro? desde já obrigado.

Link to comment
Share on other sites

Ou então remove toda as flags de compilação.

Se estiveres a usar o gcc compila somente como "gcc prog0503.c -o prog0503".

Ou então uma boa ideia seria alterar o teu código para:

#include <stdio.h>

void linha3x()
{
         int i;
         for (i=1 ; i<=3 ; i++)
         putchar('*');
         putchar('\n');
}

void linha5x()
{
         int i;
         for (i=1 ; i<=5 ; i++)
         putchar('*');
         putchar('\n');
}

void linha7x()
{
         int i;
         for (i=1 ; i<=7 ; i++)
         putchar('*');
         putchar('\n');
}

int main()
{
      linha3x();
      linha5x();
      linha7x();
      linha5x();
      linha3x();
      return 0;
}

Um bom hábito de programação é compilar sempre com todos os warnings ligados (os avisos -> o programa funciona, mas recebes um aviso de que algo que fizeste é menos correcto).

Eu compilo sempre com "gcc prog0503.c -Wall -pedantic -O2 -o prog0503"

Wall = Warnings all (todos os avisos)

pedantic = seguir as normas do ANSI C

O2 = optimizações de velocidade. O compilador optimiza o programa para velocidade, mesmo que para isso fique ligueiramente maior.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.