Jump to content
Luís Paiva

ANSWERED Undefined reference to WinMain@16

Recommended Posts

Luís Paiva

Eu tenho o seguinte código:

void maior (){
  int y,x;
  
  x=0; y=1;
  printf ("Números:"); // Condição de paragem é o zero.

  while (y!=0) {
    scanf ("%d",&y);
    if (x<y) x=y;
  }

  printf ("Maior Número é %d\n", x);
}

No entanto, não consigo construir o programa e diz-me :

undefined reference to 'WinMain@16'
error: ld returned 1 exit status
Build failed: 2 errors.

Alguém me consegue explicar o porquê? (Ainda estou muito verde nisto)

Edited by pwseo
formatação de código

Share this post


Link to post
Share on other sites
pwseo

@Luís Paiva,

Os programas escritos em C têm um ponto de entrada universalmente reconhecido: a função main. Como o teu programa não tem essa função, o linker (um dos programas que ajuda a construir o executável a partir do teu código) não sabe como definir o ponto de entrada do teu programa.

Modelo base para um programa escrito em C:

#include <stdio.h>

int main(void)
{
    // código aqui
}

Dentro da função main podes chamar outras funções (como a tua maior), mas para que o programa funcione, precisa de ter uma função main definida pela qual a execução começa.

Share this post


Link to post
Share on other sites
Luís Paiva

@pwseo obrigado, não conseguia entender o porquê de só poder pôr o programa a correr se a função se chamasse main, mas já entendi.

Share this post


Link to post
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.