Funções
Projeto de pesquisa: Funções. Pesquise 862.000+ trabalhos acadêmicosPor: muelecleo • 2/6/2014 • Projeto de pesquisa • 1.362 Palavras (6 Páginas) • 200 Visualizações
Funções
Sumario
1 Introdução
8. Funções............................................................................................... 46
8.1 O Comando return ...........................................................................................46
8.2 Protótipos de Funções.......................................................................................47
8.3 O Tipo void .....................................................................................................48
8.4 Arquivos-Cabeçalhos ........................................................................................49
8.5 Passagem de parâmetros por valor e passagem por referência ...............................50
8.6 Vetores como Argumentos de Funções ................................................................51
8.7 Os Argumentos argc e argv ...............................................................................51
1 Introdução
Uma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas.
Abaixo o tipo mais simples de função:
#include <stdio.h>
int mensagem () /* Funcao simples: imprime "Ola!" */
{
printf ("Ola! ");
return(0);
}
int main ()
{
mensagem();
printf ("Eu estou vivo!\n");
return(0);
}
O que ele faz é definir uma função mensagem() que coloca uma string na tela e retorna 0. Esta função é chamada a partir de main(), que, como já vimos, também é uma função. A diferença fundamental entre main() e as demais funções do exemplo é que main() é uma função especial, cujo diferencial é o fato de ser a primeira função a ser executada em um programa.
8.5 Passagem de parâmetros por valor e passagem por referência
Na linguagem C, quando chamamos uma função os parâmetros formais da função copiam os valores dos parâmetros que são passados para a função. Isto quer dizer que não são alterados os valores que os parâmetros têm fora da função. Este tipo de chamada de função é denominado chamada por valor. Isto ocorre porque são passados para a função apenas os valores dos parâmetros e não os próprios parâmetros. Veja o exemplo a seguir:
#include <stdio.h>
float sqr (float num);
void main ()
{
float num,sq;
printf ("Entre com um numero: ");
scanf ("%f",&num);
sq=sqr(num);
printf ("\n\nO numero original e: %f\n",num);
printf ("O seu quadrado vale: %f\n",sq);
}
float sqr (float num)
{
num=num*num;
return num;
}
O parâmetro formal num da função sqr() sofre alterações dentro da
função, mas a variável num da função main() permanece inalterada: é uma chamada por
valor.
Outro tipo de passagem de parâmetros para uma função ocorre quando alterações nos
parâmetros formais, dentro da função, alteram os valores dos parâmetros que foram passados para a função. Este tipo de chamada de função tem o nome de "chamada por referência". Este nome vem do fato de que, neste tipo de chamada, não se passa para a função os valores das variáveis, mas sim suas referências (a função usa as referências para alterar os valores das variáveis fora da função).
O C só faz chamadas por valor. Isto é bom quando queremos usar os parâmetros formais à vontade dentro da função, sem termos que nos preocupar em estar alterando os valores dos parâmetros que foram passados para a função. Mas isto também pode ser ruim às vezes, porque podemos querer mudar os valores dos parâmetros fora da função também. O C++ tem um recurso que permite ao programador fazer chamadas por referência. Há entretanto, no C, um recurso de programação que podemos usar para simular uma chamada por referência.
Quando queremos alterar as variáveis que são passadas para uma função, nós podemos declarar seus parâmetros formais como sendo ponteiros. Os ponteiros são a "referência" que precisamos para poder alterar a variável fora da função. O único inconveniente é que, quando usarmos a função, teremos de lembrar-se de colocar um & na frente das variáveis que estivermos passando para a função. Veja um exemplo:
#include <stdio.h>
void Swap (int *a,int *b);
51
void main (void)
{
int num1,num2;
num1=100;
num2=200;
Swap (&num1,&num2);
printf ("\n\nEles agora valem %d %d\n",num1,num2);
}
void Swap (int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
...