Como protótipo uma função em c programação
O que acontece quando você não protótipo? Como com qualquer coisa na programação C, quando você goof acima, o compilador ou vinculador permite que você saiba com uma mensagem de erro - ou o programa simplesmente não funcionar adequadamente. Não é o fim do mundo - não, não gosto de programar um robô militar ou projetar código genético para uma nova espécie de planta carnívora.
Conteúdo
BASIC FUNCTION-NO RETURN
#include linha de vácuo () - / * função protótipo * / int () {int entrada de loop-char principal [32] -loop = 0-tempo (looplt; 5) {prompt () - fgets (entrada, 31, entrada padrão) -loop = laço + 1-} retorno (0) -} / * * Exibição linha / linha de vácuo () {printf ("C: DOSgt; ") -}
Exercício 1: Modificar o código fonte do Basic Função- No Return. Comentar outthe protótipo da Linha 3. Construir o resultado.
erros do compilador são coisas maravilhosas, deliciosamente precisos ainda totalmente enigmáticas. Aqui está a mensagem de erro gerada pelo Code :: Blocks, embora apenas as partes relevantes da mensagem:
13 Aviso: declaração implícita de função `prompt`23 Aviso: conflitantes tipos para` prompt`13 Aviso: declaração implícita anterior de `alerta` estava aqui
O primeiro aviso ocorre na Linha 13 no arquivo de código-fonte, onde a função alerta () é usado dentro da função main (). O compilador está lhe dizendo que você está usando uma função sem um protótipo. Como a mensagem de erro diz, você está declarando implicitamente uma função. Isso é um não-não, mas não um erro de full-on.
Video: Função e Procedimento - Curso de Linguagem C #15
O segundo aviso ocorre onde a função alerta () habita no programa. No código-fonte, é na Linha 23. O aviso afirma que alerta () já foi declarada (na Linha 11) e que o segundo uso podem entrar em conflito com o primeiro.
O aviso final é uma referência de volta para onde a função foi chamada, novamente na Linha 13.
Para colocá-lo de forma sucinta: O compilador não tem idéia do que está acontecendo com a função alerta (). Seu código compila, mas a execução é arriscado.
Você pode tirar a conclusão de que a prototipagem é uma necessidade absoluta em seu código C. Isso não é inteiramente verdade. Você pode evitar prototipagem, reordenando as funções em seu código fonte. Enquanto uma função é listado antes de ser usado, você não precisa de um protótipo.
Exercício 2: Editar o seu código-fonte do Exercício 10-3. Remover o protótipo de função que foi comentado na Linha 3. Cortar e Colar (movimento) da função alerta () a partir do fundo do código de fonte Listagem de topo, acima da função principal (). Salvar, construir e executar.
Evitando o protótipo da função mostra a solução para exercício 2.
Video: [C] Aula 43 - Introdução as Funções
EVITANDO o protótipo da função
#include / * Apresentar alerta * / void pronta (void) {printf ("C: DOSgt; ") -} int () {int entrada de loop-char [32] -loop = 0-tempo (looplt; 5) {prompt () - fgets (entrada, 31, stdin) -loop = laço + 1-} principal retorno ( 0) -}
Escrevendo a função main () em primeiro lugar, seguido por outras funções permite uma melhor legibilidade, embora você está livre para colocar suas próprias funções de primeira para evitar a criação de protótipos. E se você não fizer isso, tenha em mente que outros programadores podem fazê-lo dessa maneira, por isso não se surpreenda quando você vê-lo.
mensagens de erro do compilador em Code :: Blocks tem parênteses após eles. Os comentários entre parênteses referem-se ao interruptor, ou a opção de linha de comando tradicional, que permite a verificação de uma advertência particular. Por exemplo, as mensagens de erro do Exercício 1 ler na íntegra:
11 Aviso: declaração implícita de função `pronta` (-função-declaração -Wimplicit) 20 Aviso: conflitantes tipos para `pronta` (ativado por padrão)