Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cornelius

[Resolvido] comando retun(). O que é e para o que serve?

Recommended Posts

Olá a todos, sou novo no área de programação. Estou estudando C e me deparo com esse comando return(). Sei que é uma pergunta simples demais, mas na net não encontrei nada claro sobre o assunto. Se alguém me passar o básico do comando, quando coloco zero ou um, eu agradeço.

 

Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

O return serve para duas coisas.

- finalizar uma função.

- escrever no retorno da função algum valor.

 

A primeira é sempre válida.

A segunda só é válida quando a função tem algum retorno.

Compartilhar este post


Link para o post
Compartilhar em outros sites

gostaria de saber o pq do 0 e 1 também, pois isso é frequentemente usado na função main e não entendo qual a diferença entre usar um ou outro ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

"main" como bem disse não deixa de ser função e pode retornar valor.

Creio que a ANSI C em algum documento fala que o retorno de main deve ser um inteiro.

Não sei se os compiladores que não obedecem esse padrão podem retornar outro tipo na "main".

 

Deixando essa discussão de lado, vamos ao que interessa.

O return volta a execução a quem a chamou e como main deve retornar um inteiro alguém recebe esse valor.

Li em alguns lugares que por convensão o ideal é retornar 0 ao Sistema Operacional quando "main" for executada com sucesso.

Outros números podem ser usados para tratar erros.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

gostaria de saber o pq do 0 e 1 também, pois isso é frequentemente usado na função main e não entendo qual a diferença entre usar um ou outro ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arquivo stdlib.h, dá uma olhada nessa seção aqui:

 

/*
 * These values may be used as exit status codes.
 */
#define	EXIT_SUCCESS	0
#define	EXIT_FAILURE	1

A diferença do 0 e do 1 :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então vamos ver se eu entendi: O "retornar" valor seria que a função é verdadeira 'zero' ou falsa '1'? Então, por exemplo, se o valor for 1, nem é executado a função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não.

Como eu disse acima o return finaliza a função.

Não importa se retorna 0 ou 1 a função foi executada.

A função tem que tratar isso. Se retornar 0 executou sem problemas e se encontrar um erro pode retornar 1.

 

Então vamos ver se eu entendi: O "retornar" valor seria que a função é verdadeira 'zero' ou falsa '1'? Então, por exemplo, se o valor for 1, nem é executado a função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta, entendi, mas e se no caso você no programa detrmina 'zero ou 1'? Fiz o teste e não deu muita coisa. Desculpe os flood, mas não entendi muito bem. Obrigado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Outros números podem ser usados para tratar erros.

 

Isso quando você espera que o programa devolva o controle pro SO ou para o processo pai (valor de retorno 0 no filho e PID do processo filho como retorno no pai) e ta programando na mao. Mas existe um header chamado errno.h que eh muito usado pelas bibliotecas p/ dizer o que aconteceu de errado na execucao e o valor desses erros ficam na variavel errno.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você termina o programa você retorna o controle pro SO né? Senão a regiao de memoria q você usou ia ficar bloqueada dependendo das permissoes de acesso do processo (ja que nao da pra você mesmo liberar a regiao porque o programa ja terminou).

 

A nivel de assembly o return simplesmente volta para um ponto X no codigo do programa (esse endereco fica no registrador $ra).

 

Não é à toa que programas tolerantes a falhas "se corrigem". Ficar retornando para o SO sempre que der caca é no mínimo tosco porque tem muita coisa que pode ser resolvida dentro do proprio programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.