sábado, 6 de abril de 2013

Funções


É, agora deu preguiça. Esse vai ser um big resumo. Vamos lá. Quando a gente declara uma função, a gente coloca o tipo de dados que ela vai (se for) retornar, seu nome e os parâmetros entre (). A partir daí, é escrever os comandos dentro do bloco de código. Exemplos:

int resto (int n1, int n2) {
   return n1 % n2; //retorna um número inteiro porque a função é do tipo int
}

Se a função não tiver que retornar nada, imprimir ou manipular valores, por exemplo, ela vai ser do tipo void e o livro o nome de procedimento. No fundo, a diferença entre procedimento e função é que o procedimento não retorna.
Os parâmetros são declarados sempre com tipo e nome, e separados por vírgulas. Não tem problema o nome do parâmetro (que nem n1 e n2 do exemplo) serem diferentes das variáveis que você vai mandar pra lá. Se dentro da função você usar os nomes dos parâmetros, e não das suas variáveis do programa principal, vai funcionar perfeitamente. Se quiser colocar os mesmos também, tanto faz.

OBSERVAÇÃO IMPORTANTE: variáveis que não são vetores passam apenas uma cópia do próprio valor pra dentro da função. Portanto, tudo que for modificado DENTRO da função não vai se aplicar à variável do lado de fora. vetores passam o próprio endereço, portanto se você mudar um vetor dentro da função, o original do lado de fora vai ser modificado.

O lugar certo de declarar as funções no seu programa é você quem escolhe. Eu gosto de declarar todas antes da main (inclusive o que ela faz), mas caso você queira declará-las depois tem que colocar a chamada antes (C é uma linguagem burrinha que não caça sua função depois da main caso você a chame). A chamada é o seguinte: você coloca o tipo, nome e parâmetros (caso tenha) da função em cima da main e depois coloca ponto e vírgula. Aí, você escreve a main, belezinha, e você vai escrever sua função depoooois da main, com os comandos dela bonitinhos :D

int resto (int n1, int n2);

int main () {
//comandos
}

int resto (int n1, int n2) {
  return n1 % n2; //retorna um número inteiro
}

Nenhum comentário:

Postar um comentário