}
getchar();
}
►Regras de funções
- Uma função pode ser invocada por outra.
- Cada função recebe apenas um único nome.
- Uma função deve ser utilizada para, realizar determinada tarefa. Não dependendo do resto do programa.
- Podem receber parâmetros.
- Pode retornar, para o lugar que a invocou, um valor.
- uma função é declarada dentro de blocos.
- Uma função nunca deve receber " ; " no fim de sua declaração.
►Parâmetros
Uma outra forma de enxergarmos uma função, é imaginar um processador de alimentos. Você coloca uma fruta na entrada, e recebe o suco logo depois. Partindo do ponto em que você é apenas um consumidor comum, não lhe interessa, como o processador de alimentos faz o suco. Se ele filtra, coa, faz em tal velocidade e mais milhares de processos, nada lhe interessa. O que importa é você receber seu suco, depois de colocar uma laranja no bocal do aparelho.
Uma função é como esse processador, recebe ( por parâmetros ) o alimento e depois realiza o processo até o resultado final.
Ex:
#include<stdio.h>
/*
* Foi criada uma função chamada calculo.
* Ela recebe um valor por parâmetro.
* Quando chamada pela main(), recebe o valor da variável de n1.
* Ela é processada, como se fosse a " x ".
* E imprimi o valor no fim
*/
void calculo();
main()
{
int n1 = 5;
calculo(n1); // recebe n1 como parâmetro
}
void calculo(int x)
{
int a = 95;
int calc = (a + x)*2;
printf("Cálculo = %d",calc);
}
Eu não poderia enviar mais de um valor para calculo(), pois foi especificado, que calculo() receberia apenas UM PARÂMETRO. Se eu quisesse, poderia declarar, mais de um na função. Lembrando que uma função só recebe o número de parâmetros, que ela foi projetada para receber.
Ex:
#include<stdio.h>
// Aqui esta a mesma função, agora com 2 parâmetros
void calculo();
main()
{
int n1 = 5;
int n2 = 20;
calculo(n1, n2); // recebe n1 e n2 como parâmetro
}
void calculo(int x, int y)
{
int a = 95;
int calc = (a + x + y)*2;
printf("Cálculo = %d",calc);
}
►Return
Ela permite terminar a execução de uma função e voltar ao programa que a invocou. Quando utilizada dentro de main(), termina o programa.
Ex:
#include<stdio.h>
main()
{
int a = 5;
int b = 5;
return a * b; // O que vier depois de return, não executa. ;)
}
Ex2:
int calc(int a, int b)
{
int z = a + b;
return z;
}
►Procedimentos
O procedimento pode ser intendido como aquele que não retorna nada. Diferente de uma função, que tem um tipo e retorna algo. Um exemplo seria a função calculo(). Ela não tem um tipo e não retorna nada. Mas, eis que na linguagem C, sempre quando não colocamos um tipo de retorno, no cabeçalho da função, automaticamente ele é substituído por int. Existem programadores que negam a existência de procedimentos em C, considerando-os como funções. Outros, defendem a diferença entre eles.
Em linguagens como
PASCAL, as funções são definidas por FUNCTION, e os procedimentos por PROCEDURE. Eu, particularmente, considero que procedimentos são funções, na linguagem C.
►Void
É um tipo, indicando que uma função não retornará nada. Também, são passadas por parâmetros, indicando que a função não receberá nenhum parâmetro. Um exemplo de void foi o do calculo().
►Variáveis Locais
São variáveis criadas dentro de funções. Diferentes das globais, apenas são reconhecidas dentro da função, sendo destruídos depois do término da função. Foram utilizadas variáveis locais na função calculo().