Função
Unidade autônoma do programa desenvolvida para executar alguma atividade
Evita que se escreva o mesmo código inúmeras vezes em um mesmo programa
A estrutura de uma função C é semelhante à da função main( )
A diferença é que main( ) possui um nome especial e é a
primeira a ser chamada quando o programa é executado
Exemplo de Função
#include "stdio.h"
#include "conio.h"
void linha( ) { int cont;
for(cont=1;cont<=19;cont++) printf("-");
printf("\n");
}
void main( ) { linha( );
printf(" Exemplo de Função \n");
linha( );
}
Chamando Funções
Do mesmo modo que se chama funções da biblioteca C (printf( ), getche( ) etc.) é possível chamarmos nossas próprias funções
Os parênteses que seguem as funções servem para diferenciar a chamada a uma função de uma variável
Chamadas a funções devem terminar com ponto-e-vírgula
Na definição da função não é preciso usar ponto-e-vírgula
Variáveis Globais
Variáveis conhecidas por todas funções do programa
declaradas no cabeçalho do programa
#include "stdio.h"
#include "conio.h"
int var=4;
void linha( ) {
printf(”%d\n”,var);
f( );
printf(”%d\n”,var);
}
void f( ) { var++;
}
4
5
#include "stdio.h"
#include "conio.h"
int var=4;
void linha( ) {
printf(”%d\n”,var);
f( );
printf(”%d\n”,var);
}
void f( ) {
int var=0;
var++;
}
4
4
Variáveis Locais
As variáveis declaradas dentro de uma função são chamadas de variáveis locais e são conhecidas apenas dentro da função Uma variável local existe apenas durante a execução do
bloco de código onde ela foi declarada
A variável local é criada quando a função for chamada e
destruída na saída da função
#include "stdio.h"
#include "conio.h"
void linha( ) { int cont;
for(cont=1;cont<=19;cont++) printf("-");
printf("\n");
}
void main( ) { linha( );
printf(" Exemplo de Função \n");
linha( );
printf(“%d”,cont);
}
A variável cont é conhecida apenas dentro da função linha
Erro !!!
#include "stdio.h"
#include "conio.h"
void linha( ) { int cont;
for(cont=1;cont<=19;cont++) printf("-");
printf("\n");
}
void main( ) { int cont=0;
linha( );
printf(" Exemplo de Função \n");
linha( );
printf(“%d”,cont);
}
Variáveis diferentes
Retorno de valores
O comando return(valor) serve para retornar um valor calculado pela função para quem chamou a função
int soma( ) {
int resultado;
resultado = a + b;
return(resultado);
}
void main( ) { int a, b, c;
scanf(“%d %d”, &a, &b);
c = soma( );
printf(" A Soma é %d\n”, c);
}
Exercício
Implemente um programa que recebe dois horários, dados em horas e minutos, chama uma função para transformar os horários em minutos e, por fim, imprime a diferença, em
minutos, entre os dois horários fornecidos na entrada.
Passagem de Parâmetros para funções
Mecanismo usado para transmitir informações para uma função é chamado de passagem de parâmetro
int abs(int x ) {
if(x<0) return(-x);
else return(x);
}
void main( ) {
printf(" %d %d %d\n”, abs(0), abs(-3), abs(10));
}
Passagem de Parâmetros para funções
É possível passar vários argumentos para uma função
int abs_soma(int x, int y ) { if((x+y) < 0) return(-(x+y));
else return(x+y);
}
void main( ) {
printf(" %d %d %d\n”, abs_soma(0, -3), abs_soma(-3, 3), abs_soma(10, -30));
}
Passagem de Parâmetros por valor
Em C, todos os argumentos de funções são passados por valor
A função chamada cria uma cópia local dos valores dos argumentos
int abs_soma(int x, int y ) { if((x+y) < 0) x = -(x+y);
else x = x+y;
return(x);
}
void main( ) { int x=4;
int y=-5;
printf(" %d %d\n”, x, abs_soma(x, y));
}