Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Jessé P. de Melo

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

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

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.

Editado por isrnick
  • Curtir 2

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×