colocada depois de main(), mas o seu prototipoesta antes. Sem isto este programa nao funcionaria corretamente.Usando prototipos voce pode construir funcoes que retornam quaisquer tipos devariaveis. E bom ressaltar que funcoes podem tambem retornar ponteiros sem qualquerproblema. Os prototipos nao so ajudam o compilador. Eles ajudam a voce tambem: usandoprototipos, o compilador evita erros, nao deixando que o programador use funcoes com osparametros errados e com o tipo de retorno errado, o que e uma grande ajuda!56O Tipo voidAgora vamos ver o unico tipo da linguagem C que nao detalhamos ainda: o void. Emingles, void quer dizer vazio e e isto mesmo que o void e. Ele nos permite fazer funcoes quenao retornam nada e funcoes que nao tem parametros! Podemos agora escrever o prototipo deuma funcao que nao retorna nada:void nome_da_funcao (declaracao_de_parametros);Numa funcao, como a acima, nao temos valor de retorno na declaracao return. Alias,neste caso, o comando return nao e necessario na funcao.Podemos, tambem, fazer funcoes que nao tem parametros:tipo_de_retorno nome_da_funcao (void);ou, ainda, que nao tem parametros e nao retornam nada:void nome_da_funcao (void);Um exemplo de funcoes que usam o tipo void:#include <stdio.h>void Mensagem (void);int main (){Mensagem();printf ("\tDiga de novo:\n");Mensagem();return 0;}void Mensagem (void){printf ("Ola! Eu estou vivo.\n");}Se quisermos que a funcao retorne algo, devemos usar a declaracao return. Se naoquisermos, basta declarar a funcao como tendo tipo-de-retorno void. Devemos lembrar agoraque a funcao main() e uma funcao e como tal devemos trata-la. O compilador acha que afuncao main() deve retornar um inteiro. Isto pode ser interessante se quisermos que osistema operacional receba um valor de retorno da funcao main(). Se assim o quisermos,devemos nos lembrar da seguinte convencao: se o programa retornar zero, significa que eleterminou normalmente, e, se o programa retornar um valor diferente de zero, significa que oprograma teve um termino anormal. Se nao estivermos interessados neste tipo de coisa, bastadeclarar a funcao main como retornando void.As duas funcoes main() abaixo sao validas:main (void){....return 0;57}void main (void){....}A primeira forma e valida porque, como ja vimos, as funcoes em C tem, por padrao,retorno inteiro.. Alguns compiladores reclamarao da segunda forma de main, dizendo que mainsempre deve retornar um inteiro. Se isto acontecer com o compilador que voce esta utilizando,basta fazer main retornar um inteiro.Arquivos-CabecalhosArquivos-cabecalhos sao aqueles que temos mandado o compilador incluir no inicio denossos exemplos e que sempre terminam em .h. A extensao .h vem de header (cabecalho emingles). Ja vimos exemplos como stdio.h, conio.h, string.h. Estes arquivos, na verdade, naopossuem os codigos completos das funcoes. Eles so contem prototipos de funcoes. E o quebasta. O compilador le estes prototipos e, baseado nas informacoes la contidas, gera o codigocorreto. O corpo das funcoes cujos prototipos estao no arquivo-cabecalho, no caso das funcoesdo proprio C, ja estao compiladas e normalmente sao incluidas no programa no instante da"linkagem". Este e o instante em que todas as referencias a funcoes cujos codigos nao estaonos nossos arquivos fontes sao resolvidas, buscando este codigo nos arquivos de bibliotecas.Se voce criar algumas funcoes que queira aproveitar em varios programas futuros, oumodulos de programas, voce pode escrever arquivos-cabecalhos e inclui-los tambem.Suponha que a funcao int EPar(int