Video: 9.19: Prototypes in Javascript - p5.js Tutorial 2024
Wat gebeurt er als je geen prototype maakt? Zoals met alles in C-programmeren, laat je de compiler of linker weten wanneer er een fout optreedt, of het programma werkt niet correct. Het is niet het einde van de wereld - nee, niet zoals het programmeren van een militaire robot of het ontwerpen van genetische code voor een nieuwe soort vliegenvangnet van Venus.
BASISFUNCTIE; NO RETURN
# include void prompt (); / * functie prototype * / int main () {int loop; char input [32]; lus = 0; while (loop ");}
Oefening 1 : Wijzig de broncode van de basisfunctie, geen retour Commentaar uit het prototype van regel 3. Bouw het resultaat.
Compilerfouten zijn prachtige dingen, heerlijk nauwkeurig maar volledig cryptisch.Hier is de foutmelding gegenereerd door Code:: Blokken, hoewel alleen de relevante delen van het bericht:
13 Waarschuwing: impliciete functie-verklaring ' prompt '23 Waarschuwing: conflicterende typen voor' prompt '13 Waarschuwing: eerdere impliciete melding van' prompt 'was hier
De eerste waarschuwing vindt plaats op regel 13 in het broncodebestand, waarbij de prompt () -functie wordt gebruikt in de hoofdtaal () functie.De compiler vertelt je dat je een functie zonder een prototype gebruikt.Als de foutmelding zegt, verklaar je impliciet een functie.Dat is een niet-nee, maar niet een volledige fout. >
De laatste waarschuwing is een verwijzing terug naar waar de functie werd aangeroepen, opnieuw op regel 13.
Om het bondig te zeggen: de compiler heeft geen idee wat er aan de hand is met de prompt () -functie. Uw code compileert, maar het uitvoeren ervan is riskant.
Oefening
2 : Bewerk uw broncode uit Oefening 10-3. Verwijder het functieprototype met commentaar op regel 3. Knip en plak (verplaats) de prompt () -functie van onder aan de broncodelijst naar de top, boven de hoofdfunctie (). Opslaan, bouwen en uitvoeren. Het vermijden van het functieprototype toont de oplossing voor Oefening 2.
DE FUNCTIE PROTOTYPE VERMIJDEN
# include / * Displayprompt * / void prompt (void) {printf ("C: DOS>");} int main () {int loop; char input [32]; lus = 0; while (loop <5) {prompt (); fgets (invoer, 31, stdin); lus = lus + 1;} return (0);}
Het eerst schrijven van de functie main (), gevolgd door andere functies, zorgt voor een betere leesbaarheid, maar u kunt uw eigen functies eerst plaatsen om prototyping te voorkomen.En als je dat niet doet, onthoud dan dat andere programmeurs het op die manier kunnen doen, wees dus niet verrast wanneer je het ziet.
Compiler-foutmeldingen in Code:: Blokken hebben er haakjes achter staan. De opmerkingen tussen haakjes verwijzen naar de
switch , of de traditionele opdrachtregeloptie, waarmee een specifieke waarschuwing kan worden gecontroleerd. De foutmeldingen van Oefening 1 lezen bijvoorbeeld volledig: 11 Waarschuwing: impliciete functie-aanwijzing (-Wimplicit-function-declaration) 20 Waarschuwing: conflicterende typen voor 'prompt' (standaard ingeschakeld) >