Ir para conteúdo
Faça parte da equipe! (2024) ×

Funções: Tipo void e Protótipos


Neёlix
 Compartilhar

Posts Recomendados

Leia primeiramente: http://www.webcheats.com.br/forum/c-c-c/2159007-basico-sobre-funcoes.html

 

Protótipo de Funções

 

Na maioria dos exemplos na internet envolvendo funções, elas são escritas antes da função main(), isto é, as funções estão fisicamente antes da função principal. Há uma explicação para isto, imagine-se na pele do compilador: você vai compilando o código de forma linear, coluna a coluna, linha a linha. Ao chegar na main() (onde são chamada as demais funções), você já compilou todas escritas previamente, sabe seus retornos, parâmetros e onde encontrá-las no corpo do código com antecedência, assim o código é gerado corretamente. Mas e se tivermos o seguinte código:

 

É necessário se cadastrar para acessar o conteúdo.

 

A função que soma os valores está abaixo da função principal, assim, o compilador não tem conhecimento da sua existência. Ao tentar gerar o código retornará um erro (dependendo do IDE que utiliza, alguns varrem o código inteiro para procurar a função). Muitas das vezes, não poderemos escrever o código seguindo a ordem função1() -> função2() -> main(). Muita das vezes teremos o nosso programa espalhado por vários arquivos, ou seja, estaremos chamando funções em um arquivo que foram compiladas em outro. Então, como manter a coerência?

 

A solução é o uso de protótipos de funções que, nada mais é que uma "declaração de função". Fazendo com que o compilador tenha conhecimento do formato daquela função antes de compilá-la e então gere o código corretamente. Um protótipo tem o seguinte formato:

 

É necessário se cadastrar para acessar o conteúdo.

 

Onde o tipo de retorno, o nome da função e os parâmetros da mesma são os mesmos que você pretende usar quando realmente escrever a função. Note que os protótipos tem uma semelhança com declaração de variáveis. Podemos agora implementar a função "quadrado", feita no tópico anterior ( link ).

 

É necessário se cadastrar para acessar o conteúdo.

 

O uso de protótipos não ajudam somente o compilador mas quem está programando também.

Usando protótipos o compilador evita erros, não deixando que o programador use funções com os parâmetros ou tipo de retorno errados. Exemplo:

 

É necessário se cadastrar para acessar o conteúdo.

 

No caso, o compilador irá avisar que a função declarada no protótipo foi escrita incorretamente, com o parâmetro errado.

Impedindo que o programa seja compilado até que o erro seja corrigido.

 

- OK, ENTENDI TUDO, MAS POSSO CONSTRUIR UMA FUNÇÃO QUE NÃO RETORNA NENHUM VALOR?... Sim, o tipo void.

 

 

Tipo void

 

int, float, char, bool... falta o último tipo de dados da linguagem C, o void. Em inglês, void significa vazio e é isto mesmo que o void é.

Ele nos permite criar funções que não retornam nada e que não tenham parâmetros. É importante mencionar que, funções com retorno void podem ter parâmetros inteiros, flutuantes, etc. Assim com como funções com tipo de retorno definido podem ser declaradas com parâmetro void. Por exemplo:

 

É necessário se cadastrar para acessar o conteúdo.

 

É necessário se cadastrar para acessar o conteúdo.

Nas funções acima não temos valor de retorno na declaração return. Aliás, neste caso o comando return não é necessário na função. Um exemplo:

 

É necessário se cadastrar para acessar o conteúdo.

Devemos lembrar agora que main() é uma função e assim devemos tratá-la. O compilador sempre irá esperar que main() retorne um inteiro.

return 0, diz que o programa foi executado como o esperado, sem erros. Qualquer valor diferente de 0 é o seu oposto.

 

 

Referência:

Usei alguns termos e explicações de uma apostila intitulada "Estrutura de Dados em linguagem C",

da Universidade Estácio de Sá, datando última atualização 3 - dezembro - 2009. Sem autor disponível.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.