Funções e seus desafios
Artigo: Funções e seus desafios. Pesquise 862.000+ trabalhos acadêmicosPor: Tricolordiadema • 8/4/2014 • Artigo • 896 Palavras (4 Páginas) • 287 Visualizações
Funções e suas chamadas
Para modularizar um programa, o programador utiliza as funções e a maioria delas possuem uma lista de parâmetros, onde também são variáveis locais.
Existem vários motivos para “funcionalizar” um programa. Uma das motivações é a capacidade da reutilização dos software, que consiste em utilizar as funções já existente como blocos pré-fabricados para criar novos programas e essa capacidade de reutilização é importante para orientada a objetos. Em vez de serem construídos usando código padronizado, os programas podem ser criados a partir de funções padronizadas que realizem tarefas, especificas (abstração).
Todos os programas deve ter a função main, que nada mais é que a função principal do programa. Quando o programa for executado ele ira, na verdade, chamar a função main, ou seja, se o programa não conter uma função assim, ele não irá fazer nada.
O nome de uma função é qualquer identificador valido, a lista de parâmetros é constituída pelas declarações dos parâmetros recebidos pela função quando ela é chamada, isto tudo separado por virgulas. E as declarações e as instruções entre chaves formam o corpo da função (bloco).
Quando se falam em funções, também se remete aos protótipos de funções, e se trata de dizer ao compilador o tipo de dado retornado pela função, o numero de parâmetros que a função espera receber, os tipos de parâmetros e ordem na qual esses parâmetros são separados.
São chamadas por valor e chamadas por referência as duas maneiras de ativar as funções em muitas linguagens de programação. Se é feita uma copia dos valores do argumento, sendo que a mesma é passada para a função chamada quando os argumentos são passados através de uma chamada por valor. Já quando o argumento é passado por referência, a função chamadora permite realmente que a função chamada modifique o valor original da variável.
Quando a função chamada não precisa modificar o valor da variável original da função chamadora deve-se usar a chamada por valor, evitando retardar o desenvolvimento de sistemas e softwares. A chamada por referência só deve ser usada com funções confiáveis que precisem modificar a variável original, o que podemos notar em C, que todas chamadas são por valor.
Um fator importante e que é possível simular a chamada por referência usando operadores de endereços e de ações indiretas.
A chamada por valor permite que as variáveis de uma função sejam protegidas, ou seja, apenas a função onde as variáveis foram declaradas pode modificar seu conteúdo. Permitir que uma função modifique o conteúdo de outra pode ser muito perigoso, mas há situações onde isso é necessário.
Ao contrario da chamada por valor, na qual não pode ser modificado o valor dos argumentos na chamada por referência são passados os endereços de memória onde estão os argumentos. Neste tipo de chamada os valores podem ser modificados.
Exemplos
Chamada por valor
/* Testando a chamada por valor */
#include <stdio.h>
/* Função com chamada por valor */
int valor(int a, int b)
{
a = a + 3; /* Modificando o primeiro argumento */
b = b + 2; /* Modificando o segundo argumento */
printf("Valores modificados dentro da função:\n");
printf("nr1 = %d\n",a);
printf("nr2 = %d\n",b);
}
int main()
{
int nr1 = 2, nr2 = 3, total;
printf("\n");
printf("Chamada por valor\n");
printf("=================\n");
printf("Valores iniciais de nr1 e nr2\n");
printf("nr1 = %d\n",nr1);
...