14.03.2015 Views

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!