imediatamente e, se o valor de retorno e informado, a funcaoretorna este valor. E importante lembrar que o valor de retorno fornecido tem que sercompativel com o tipo de retorno declarado para a funcao.Uma funcao pode ter mais de uma declaracao return. Isto se torna claro quandopensamos que a funcao e terminada quando o programa chega a primeira declaracao return.Abaixo estao dois exemplos de uso do return:54#include <stdio.h>int Square (int a){return (a*a);}int main (){int num;printf ("Entre com um numero: ");scanf ("%d",&num);num=Square(num);printf ("\n\nO seu quadrado vale: %d\n",num);return 0;}#include <stdio.h>int EPar (int a){if (a%2) /* Verifica se a e divisivel por dois */return 0; /* Retorna 0 se nao for divisivel */elsereturn 1; /* Retorna 1 se for divisivel */}int main (){int num;printf ("Entre com numero: ");scanf ("%d",&num);if (EPar(num))printf ("\n\nO numero e par.\n");elseprintf ("\n\nO numero e impar.\n");return 0;}E importante notar que, como as funcoes retornam valores, podemos aproveita-los parafazer atribuicoes, ou mesmo para que estes valores participem de expressoes. Mas naopodemos fazer:func(a,b)=x; /* Errado! */No segundo exemplo vemos o uso de mais de um return em uma funcao.Fato importante: se uma funcao retorna um valor voce nao precisa aproveitar este valor.Se voce nao fizer nada com o valor de retorno de uma funcao ele sera descartado. Porexemplo, a funcao printf() retorna um inteiro que nos nunca usamos para nada. Ele edescartado.AUTO AVALIACAO55Veja como voce esta. Escreva a funcao EDivisivel(int a, int b) (tome como base EPar(inta)). A funcao devera retornar 1 se o resto da divisao de a por b for zero. Caso contrario, afuncao devera retornar zero.Prototipos de FuncoesAte agora, nos exemplos apresentados, escrevemos as funcoes antes de escrevermos afuncao main(). Isto e, as funcoes estao fisicamente antes da funcao main(). Isto foi feito poruma razao. Imagine-se na pele do compilador. Se voce fosse compilar a funcao main(), ondesao chamadas as funcoes, voce teria que saber com antecedencia quais sao os tipos de retornoe quais sao os parametros das funcoes para que voce pudesse gerar o codigo corretamente.Foi por isto as funcoes foram colocadas antes da funcao main(): quando o compiladorchegasse a funcao main() ele ja teria compilado as funcoes e ja saberia seus formatos.Mas, muitas vezes, nao poderemos nos dar ao luxo de escrever nesta ordem. Muitasvezes teremos o nosso programa espalhado por varios arquivos. Ou seja, estaremos chamandofuncoes em um arquivo que serao compiladas em outro arquivo. Como manter a coerencia?A solucao sao os prototipos de funcoes. Prototipos sao nada mais, nada menos, quedeclaracoes de funcoes. Isto e, voce declara uma funcao que ira usar. O compilador tomaentao conhecimento do formato daquela funcao antes de compila-la. O codigo correto seraentao gerado. Um prototipo tem o seguinte formato:tipo_de_retorno nome_da_funcao (declaracao_de_parametros);onde o tipo-de-retorno, o nome-da-funcao e a declaracao-de-parametros sao os mesmosque voce pretende usar quando realmente escrever a funcao. Repare que os prototipos temuma nitida semelhanca com as declaracoes de variaveis. Vamos implementar agora um dosexemplos da secao anterior com algumas alteracoes e com prototipos:#include <stdio.h>float Square (float a);int main (){float num;printf ("Entre com um numero: ");scanf ("%f",&num);num=Square(num);printf ("\n\nO seu quadrado vale: %f\n",num);return 0;}float Square (float a){return (a*a);}Observe que a funcao Square() esta