
Mas, muitas vezes, não poderemos nos dar ao luxo de escrever nesta ordem. Muitas vezes teremos o nosso programa espalhado por vários arquivos. Ou seja, estaremos usando funções em um arquivo que serão compiladas em outro arquivo. Como manter a coerência?
A solução são os protótipos de funções. Protótipos são nada mais, nada menos, que declarações de funções. Isto é, você declara uma função que irá usar. O compilador toma então conhecimento do formato daquela função antes de compilá-la. O código correto será então gerado. Um protótipo tem o seguinte formato:
tipo_de_retorno nome_da_função (declaração_de_parâmetros);
onde o tipo-de-retorno, o nome-da-função e a declaração-de-parâmetros são os mesmos que você pretende usar quando realmente escrever a função. Repare que os protótipos têm uma nítida semelhança com as declarações de variáveis. Vamos implementar agora um dos exemplos da seção anterior com algumas alterações e com protótipos:
#include <stdio.h>
float Square (float a);
main ()
{
float num;
printf ("Entre com um numero: ");
scanf ("%f",&num);
num=Square(num);
printf ("\n\nO seu quadrado vale: %f\n",num);
}
float Square (float a)
{
return (a*a);
}
Observe que a função Square() está colocada
depois de main(), mas o seu protótipo está antes.
Sem isto este programa não funcionaria corretamente.
Usando protótipos você pode construir funções que retornam quaisquer tipos de variáveis. É bom ressaltar que funções podem também retornar ponteiros sem qualquer problema. Eles não só ajudam o compilador. Eles ajudam a você também. Usando protótipos o compilador evita erros, não deixando que o programador use funções com os parâmetros errados e com o tipo de retorno errado, o que já é uma grande ajuda.
Perguntas para a lista do Curso de C