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.

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)

Publicações relacionadas