Ir ao conteúdo
  • Cadastre-se

C Porque o console retorna um numero mesmo quando a main é void?


Posts recomendados

Porque o código abaixo da process returned 21(0x15) se a função main é void??

Pelo o que eu aprendi estudando por conta a main nem deveria retorna nada e muito menos o valor 21;

 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

void main(void){
    float cateto_a=0;
    float cateto_b=0;
    float hipotenusa(float a, float b);

    printf("Digite o cateto A:");
    scanf("%f",&cateto_a);
    printf("Digite o cateto B:");
    scanf("%f",&cateto_b);
    printf("A hipotenusa e' %.2f",hipotenusa(cateto_a,cateto_b));
}

float hipotenusa(float a, float b){
    float hip=0;
    a=a*a;
    b=b*b;
    hip=sqrt(a+b);
    return(hip);
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

main() deve ser do tipo int, você não escreve isso no código mas esta função é chamada como qualquer outra função num programa, é a primeira função que é chamada no programa, e o escopo que chama a função main() espera que ela retorne um valor inteiro (que indica o status em que o programa foi finalizado, ou seja se acabou normalmente retorna 0, ou retorna um número diferente de zero se houve algum erro).

 

E se o seu main() não retorna nada então houve um erro.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Existe algum lugar onde encontro a padronização do sistema? Sei que se da zero é porque funcionou corretamente, se retorna negativo e porque deu erro, se retorna positivo e porque concluiu com adversidades, onde encontro as referencias para saber qual foi a adversidade exemplo 21(0x15).

 

Mas eu nem sabia que a main e necessariamente int.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

1 minuto atrás, Jessé P. de Melo disse:

Existe algum lugar onde encontro a padronização do sistema? Sei que se da zero é porque funcionou corretamente, se retorna negativo e porque deu erro, se retorna positivo e porque concluiu com adversidades, onde encontro as referencias para saber qual foi a adversidade exemplo 21(0x15).

 

Mas eu nem sabia que a main e necessariamente int.

Isto é uma convenção, mas não há padrão pois o programador pode definir os erros ou aletas relevantes para o programa específico, assim como mensagens de erro ou alerta que sejam relevantes para o programa em questão.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Jessé P. de Melo     seu código retorna o valor 21( 0x15) por que depende de quantos zeros você digitou na entrada , e a cada zero digitado ele soma hum ao valor de referencia que é 20 , e nesse caso você digitou um zero  e o que está dentro dos parenteses é o referente ao número em hexadecimal , 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá! 

Eu suspeito que; Quem retorna é o contêiner [ou inglês: container].

Por exemplo: Se a IDE é Code :: Block então ao executar o programa por meio da IDE um outro programa [container] é quem o recebe, daí ao finalizar o programa com void dentro do container é o container quem recebe o sinal mudo do programa void, este por sua vez, retorna o status da operação para IDE no local aonde fica o relatório de execução. Ou seja, quem retornou 0x15 foi o programa container e não o código do programa implementado com void main().

 

:lol:

 

 

adicionado 7 minutos depois
Em 18/05/2018 às 19:47, Jessé P. de Melo disse:

encontro as referencias para saber qual foi a adversidade exemplo 21(0x15).

Eu suspeito que esse é o sinal para erro em tempo de execução. Mas esquenta com isso não, tem coisa mais uteis a estudar.

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...