Escolar Documentos
Profissional Documentos
Cultura Documentos
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 2
Funções – Comando Return
Encerra a execução de uma função.
É usado para retornar um determinado valor,
no local em que a função foi chamada.
Caso a função não retorna valor, deve ser
declarada como tendo tipo de retorno void
O comando return tem a seguinte forma geral:
return valor_de_retorno;
ou
return;
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 3
Funções – Chamadas e Retorno
Uma função só é executada se for chamada.
Uma função que chama a outra chama-se função
chamadora
A própria função é conhecida como função
chamada.
Quando se chama uma função, o controlo de
execução é desviado para a primeira instrução da
função.
Quando se retorna para a função chamadora a
instrução chamadora é substituída pelo valor
retornado pela função.
Quando se retorna para a função chamadora
executa-se a instrução seguinte a chamada.
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 4
Funções – Exemplo
int EPar (int a)
{
#include <stdio.h>
if (a%2) /* Verifica se a e divisível por dois */
int EPar (int a); return 0; /* Retorna 0 se não for divisível */
int main () else
{ return 1; /* Retorna 1 se for divisível */
int num; }
printf ("Digite um número: ");
scanf ("%d",&num);
if (EPar(num))
printf ("\n\nO número é par.\n");
else
printf ("\n\nO número é impar.\n");
return 0;
}
Fonte: Manual da Linguagem C, de
Paulo Valentim, ECB
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 5
Funções – Tipo Void
A palavra void, em inglês, significa “vazio”.
Usado juntamente com funções serve para:
◦ Declarar funções sem retorno de valor
◦ Declarar uma função que não recebe parâmetros
formais específicos.
Assim, podemos ter:
◦ void nome_da_função (declaração_de_parâmetros);
◦ tipo_de_retorno nome_da_função (void);
◦ void nome_da_função (void);
Nota: Numa função com tipo de retorno void, o comando return não
tem valor ou ainda pode ser omitido na função.
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 6
Funções – Tipo Void
Um exemplo de funções que usam o tipo void:
#include <stdio.h>
void Mensagem (void);
int main ()
{
Mensagem();
printf ("\tDiga de novo:\n");
Mensagem();
return 0;
}
void Mensagem (void)
{
printf ("Olá! Eu estou vivo.\n");
}
Fonte: Pag.70– Manual da Linguagem C, de
UniMETRO/FATEC/LCC-BIF
Paulo Valentim, ECB ProgramaçãoII/ M.T.Ditutala 7
Funções - Protótipos
O protótipo consiste na declaração
prévia de uma função antes da sua
definição.
Um protótipo tem o seguinte formato:
tipo_de_retorno nome_da_função (declaração_de_parâmetros);
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 8
Funções – Passagem de Parâmetros
Por Valor
◦ Quando os parâmetros formais, passados para
uma função não devem ser alterados após sair
da função, a passagem dos parâmetros deve
ser por valor.
◦ Neste caso devem ser passados para a função
apenas os valores e não os próprios
parâmetros.
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 9
Funções – Passagem de Parâmetros por Valor
Exemplo: Determinar o quadrado de um número float sqr (float num)
#include <stdio.h> {
num=num*num;
float sqr (float num); return num;
void main () }
{
float num,sq;
printf ("Digite um número: ");
scanf ("%f ",&num);
sq=sqr(num);
printf ("\n\nO número original é: %f\n",num);
printf ("O seu quadrado é: %f\n",sq);
}
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 11
Funções – Passagem de Parâmetros por Referência
Exemplo: Limpar os Valores Lidos void limpe (int *num1,
#include <stdio.h> int *num2)
void limpe(int *, int *); {
int main () *num1= *num2 = 0;
return;
{ }
int a,b;
printf ("Digite dois números separados por espaço: ");
scanf ("%d" "%d",&a,&b);
printf (“Valores Lidos:\na = %d \nb= %d\n",a,b);
limpe(&a,&b);
printf (“Limpeza Efectuada com Sucesso\na = %d \nb=
%d\n",a,b);
return 0;
}
UniMETRO/FATEC/LCC-BIF
ProgramaçãoII/ M.T.Ditutala 12