Apostila C da UFMG - Universidade do Minho
Apostila C da UFMG - Universidade do Minho
Apostila C da UFMG - Universidade do Minho
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
O tipo-de-retorno é o tipo de variável que a função vai retornar. O default é o tipo int, ou seja, uma função para qual<br />
não declaramos o tipo de retorno é considera<strong>da</strong> como retornan<strong>do</strong> um inteiro. A declaração de parâmetros é uma lista<br />
com a seguinte forma geral:<br />
tipo nome1, tipo nome2, ... , tipo nomeN<br />
Repare que o tipo deve ser especifica<strong>do</strong> para ca<strong>da</strong> uma <strong>da</strong>s N variáveis de entra<strong>da</strong>. É na declaração de parâmetros que<br />
informamos ao compila<strong>do</strong>r quais serão as entra<strong>da</strong>s <strong>da</strong> função (assim como informamos a saí<strong>da</strong> no tipo-de-retorno).<br />
O corpo <strong>da</strong> função é a sua alma. É nele que as entra<strong>da</strong>s são processa<strong>da</strong>s, saí<strong>da</strong>s são gera<strong>da</strong>s ou outras coisas são feitas.<br />
7.2 -O Coman<strong>do</strong> return<br />
O coman<strong>do</strong> return tem a seguinte forma geral:<br />
return valor_de_retorno; ou return;<br />
Digamos que uma função está sen<strong>do</strong> executa<strong>da</strong>. Quan<strong>do</strong> se chega a uma declaração return a função é encerra<strong>da</strong><br />
imediatamente e, se o valor de retorno é informa<strong>do</strong>, a função retorna este valor. É importante lembrar que o valor de<br />
retorno forneci<strong>do</strong> tem que ser, pelo menos, compatível com o tipo de retorno declara<strong>do</strong> para a função.<br />
Uma função pode ter mais de uma declaração return. Isto se torna claro quan<strong>do</strong> pensamos que a função é termina<strong>da</strong><br />
quan<strong>do</strong> o programa chega à primeira declaração return. Abaixo estão <strong>do</strong>is exemplos de uso <strong>do</strong> return:<br />
#include <br />
int Square (int a)<br />
{<br />
return (a*a);<br />
}<br />
main ()<br />
{<br />
int num;<br />
printf ("Entre com um numero: ");<br />
scanf ("%d",&num);<br />
num=Square(num);<br />
printf ("\n\nO seu quadra<strong>do</strong> vale: %d\n",num);<br />
}<br />
#include <br />
int EPar (int a)<br />
{<br />
if (a%2) /* Verifica se a e divisivel por <strong>do</strong>is */<br />
return 0; /* Retorna 0 se nao for divisivel */<br />
else<br />
return 1; /* Retorna 1 se for divisivel */<br />
}<br />
main ()<br />
{<br />
int num;<br />
printf ("Entre com numero: ");<br />
scanf ("%d",&num);<br />
if (EPar(num))<br />
printf ("\n\nO numero e par.\n");<br />
else<br />
printf ("\n\nO numero e impar.\n");<br />
}<br />
É importante notar que, como as funções retornam valores, podemos aproveitá -los para fazer atribuições. Mas não<br />
podemos fazer:<br />
func(a,b)=x; /* Erra<strong>do</strong>! */<br />
No segun<strong>do</strong> exemplo vemos o uso de mais de um return em uma função.<br />
Fato importante: se uma função retorna um valor você não precisa aproveitar este valor. Se você não fizer na<strong>da</strong> com<br />
o valor de retorno de uma função ele será descarta<strong>do</strong>. Por exemplo, a função printf() retorna um inteiro que nós<br />
nunca usamos para na<strong>da</strong>. Ele é descarta<strong>do</strong>.<br />
Pág. 48