Linguagem C - Funções

Dezembro 2016


O conceito de função


Chamamos função um subprograma que permite efetuar um conjunto de instruções por simples chamada de função no corpo do programa principal. As funções permitem executar, em várias partes do programa, uma série de instruções; isto permite um código simples e um tamanho mínimo de programa. Por outro lado, uma função pode recorrer a si mesma, ela é chamada de função recursiva (não se esqueça de definir uma condição de saída para não correr o risco de não poder parar o programa...).

A declaração de uma função


Antes de ser utilizada, uma função deve ser definida pois, para chamá-la no corpo do programa, é preciso que o compilador a conheça, ou seja, que ele conheça o seu nome, seus argumentos e as instruções que ela contém. A definição de uma função é chamada de " declaração". A declaração de uma função é feita usando a seguinte sintaxe:

tipo_de_dado Nome_Da_função(tipo1 argument1o1, tipo2 argumento2, ...) { 

lista de instruções

}

Observações:

  • Tipo_de_dado representa o tipo de valor que a função deve retornar (char, float, int ...)
  • Se a função não retorna nenhum valor, então botamos a palavra-chave antes dela void.
  • Se nenhum tipo de dado é especificado (isto é muito ruim!), O tipo int é assumido por padrão.
  • O nome da função segue as mesmas regras que os nomes das variáveis:
    • O nome deve começar com uma letra
    • Um nome de função pode conter letras, números e caracteres _ e & (espaços não são permitidos!).
    • O nome da função, como o das variáveis, é sensível ao tamanha das letras (diferenciação entre maiúsculas e minúsculas).
  • Os argumentos são facultativos, mas se não houver argumentos, os parênteses devem continuar presentes.
  • Não se esqueça de fechar as chaves.



  • O numero de chaves abertas (função, loops e outras estruturas) deve ser igual ao numero de chaves fechadas!
  • O mesmo se aplica para parênteses, colchetes ou aspas!


Feito isso, sua função não será executada enquanto não se recorrer a ela, em qualquer lugar da página!

Chamada da função


Para executar uma função, basta chamá-la escrendo o seu nome (sempre respeitando o case sensitive), seguido de um parêntese aberto (eventualmente argumentos) e, em seguida, um parêntese fechado:

Nome_Da_Função();


Observações:

  • O ponto e vírgula significa o fim de uma instrução e permite que o browser distingua os diferentes blocos de instruções.
  • Se você definiu argumentos na declaração da função, você deverá incluí-los na chamada de função (o mesmo número de argumentos separados por vírgulas!)

Nome_Da_função (argumento1, argumento2) 

Protótipo de uma função


O protótipo de uma função é a descrição de uma função que é definida mais além, no programa. Assim, o protótipo é colocado no início do programa (antes da função principal main()).

Esta descrição permite que o compilador "verifique" a validade da função cada vez que ele a encontra no programa, indicando-lhe:

  • O tipo de valor retornado pela função
  • O nome da função
  • Os tipos de argumentos


Ao contrário da definição da função, o protótipo não é seguido pelo corpo da função (com instruções a serem executadas), e não inclui o nome dos parâmetros (apenas seu tipo).
Um protótipo da função tem esta aparência:

Tipo_de_dado_retornado Nome_Da_Função(tipo_argumento1, tipo_argumento2, ...);



O protótipo é uma instrução, então, ele é acompanhado de um ponto e virgula!


Veja alguns exemplos de protótipos:

void Exibir_car(char, int);

int Somme(int, int);

Os argumentos de uma função


É possível passar argumentos para uma função, isto é, dar um valor ou um nome a uma variável para que a função possa executar operações sobre esses argumentos, ou graças a eles.
Passar argumentos para uma função se faz através de uma lista de argumentos (separados por vírgulas) entre parênteses, imediatamente após o nome da função.

O número e tipo dos argumentos na declaração, o protótipo e a chamada devem corresponder, se não, pode ocorrer um erro durante a compilação...

Um argumento pode ser:

  • uma constante
  • uma variável
  • uma expressão
  • uma outra função

Retorno de um valor por uma função


A função pode retornar um valor (e, então, terminar) graças àpalavra-chave return. Quando a instrução return é encontrada, a função avalia o valor que a segue e, em seguida, o retorna para o programa de chamada (um programa a partir do qual a função foi chamada).

Uma função pode conter múltiplas instruções return, no entanto, será a primeira instrução return encontrada que provocará o fim da função e o retorno do valor que a segue.

A sintaxe da instrução "return" é simples:

return (valor_ou_variável);



O tipo de valor retornado deve corresponder ao que foi especificado na definição (e o protótipo).



Tradução feita por Lucia Maurity y Nouira


Veja também :
Este documento, intitulado « Linguagem C - Funções  »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.