Como um protótipo funcional de programação C

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.

BASIC FUNCTION-NO RETURN

#include prompt de void () - / * função protótipo * / int () {int entrada de loop-char principal [32] -loop = 0-while (looplt; 5) {prompt () - fgets (entrada, 31, stdin) -loop = circuito + 1-} return (0) -} / * prompt de exibição * / void rápida () {printf ( "C: DOS>") -}

Exercício 1: Modificar o código fonte de 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 da função 'prompt'23 Aviso: conflitantes tipos para' prompt'13 Aviso: declaração implícita anterior do "Avisar" foi aqui

O primeiro aviso ocorre na Linha 13 no arquivo de código-fonte, onde a função alerta () é usada 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.

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 pode entrar em conflito com o primeiro.

O último aviso é 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 se passa com a função de alerta (). Seu código compila, mas a execução é arriscado.

Você pode tirar a conclusão de que a criação de protótipos é 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 função que foi comentado na Linha 3. Cortar e colar (movimento) da função alerta () a partir do fundo do código-fonte imóvel a parte superior, acima da função main (). Salvar, construir e executar.

Evitando o protótipo da função mostra a solução para o Exercício 2.

EVITANDO o protótipo da função

#include / * Apresentar alerta * / prompt de void (void) {printf ( "C: DOS>") -} input () {int ciclo-char principal int [32] -loop = 0-while (looplt; 5 ) {prompt () - fgets (entrada, 31, stdin) -loop = circuito + 1-} return (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 poderão 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 depois deles. As observações entre parênteses referem-se ao interruptor, ou a opção de linha de comando tradicional, que permite a verificação de um alerta particular. Por exemplo, as mensagens de erro do Exercício 1 ler na íntegra:

11 Aviso: declaração implícita da função "Avisar" (-função-declaração -Wimplicit) 20 Aviso: conflitantes tipos para 'rápida' (ativado por padrão)

menu