Vídeo: Writing a simple Program in C - bin 0x02 2024
O que acontece quando você não é prototado? Tal como acontece com qualquer coisa na programação C, quando você vai para cima, o compilador ou vinculador permite que você saiba com uma mensagem de erro - ou o programa simplesmente não é executado corretamente. Não é o fim do mundo - não, não como programar um robô militar ou projetar código genético para uma nova espécie de trave volta Venus.
FUNÇÃO BÁSICA; NO RETURN
#include void prompt (); / * protótipo de função * / int main () {int loop; entrada de caracteres [32]; loop = 0; while (loop ");}
Exercício 1 : Modifique o código fonte da Função básica, sem retorno. Comente o protótipo da linha 3. Crie o resultado.
Os erros do compilador são coisas maravilhosas, deliciosamente precisas, mas totalmente encriptadas. Aqui está a mensagem de erro gerada pelo Código:: Blocos, embora apenas as partes relevantes da mensagem:
13 Aviso: declaração implícita de função ' Aviso: a declaração implícita anterior de 'prompt' estava aqui
O primeiro aviso ocorre na Linha 13 no arquivo de código fonte, onde a função prompt () é usada dentro do principal (). O compilador está dizendo que você está usando uma função sem um protótipo. Como a mensagem de erro diz, você está implicitamente declarando uma função. Esse é um erro não-não, mas não um erro total. >
O aviso final é uma referência de volta para onde a função foi chamada, novamente na Linha 13.
Para colocá-lo sucintamente: O compilador não tem idéia do que há com a função prompt (). Seu código compila, mas executá-lo é arriscado.
Exercício
2 : Edite seu código fonte no Exercício 10-3. Remova o protótipo de função que foi comentado na Linha 3. Corte e cole (mover) a função prompt () da parte inferior do código de fonte Listado para o topo, acima da função main (). Salve, crie e execute. Evitando o Protótipo de Função mostra a solução para o Exercício 2.
EVITANDO O PROTOTIPO DE FUNÇÕES
#include / * prompt de exibição * / void prompt (void) {printf ("C: DOS>");} int main () {int loop; entrada de caracteres [32]; loop = 0; enquanto (loop <5) {prompt (); fgets (entrada, 31, stdin); loop = loop + 1;} return (0);}
Escrevendo a função principal () primeiro, seguida de outras funções, permite uma melhor legibilidade, embora seja livre para colocar suas próprias funções primeiro para evitar a prototipagem.E se você não fizer isso, tenha em mente que outros programadores podem fazê-lo dessa maneira, então não se surpreenda quando você vê isso.
Mensagens de erro do compilador no código:: Os blocos têm parênteses após eles. Os comentários entre parentes referem-se à opção, ou linha de comando tradicional, que permite verificar um aviso específico. Por exemplo, as mensagens de erro do Exercício 1 são lidas na íntegra: 11 Aviso: declaração implícita da função 'prompt' (-Defeição da função virtual) 20 Aviso: tipos conflitantes para 'prompt' (habilitado por padrão) >