Video: Map - Part 2 of Functional Programming in JavaScript 2025
Hvad sker der, når du ikke prototype? Som med noget i C-programmering, når du går i gang, lader kompilatoren eller linkeren dig vide med en fejlmeddelelse - eller programmet kører ikke korrekt. Det er ikke verdens ende - nej, ikke som at programmere en militær robot eller designe genetisk kode for en ny art af Venus flytrap.
GRUNDLÆGGENDE FUNKTION; INGEN TILBAGE
#include void prompt (); / * funktion prototype * / int main () {int loop; char-indgang [32]; loop = 0; mens);}
Øvelse 1 : Rediger kildekoden fra Grundfunktion, Ingen Retur. Kommentér prototypen fra Linje 3. Bygg resultatet.
Kompileringsfejl er vidunderlige ting, dejligt nøjagtige men alligevel kryptiske. Her er fejlmeddelelsen genereret af Kode:: Blokke, men kun de relevante dele af meddelelsen:
13 Advarsel: implicit funktionskendelse ' prompt '23 Advarsel: modstridende typer for' prompt '13 Advarsel: tidligere implicit angivelse af' prompt 'var her
Den første advarsel opstår ved linie 13 i kildekodefilen, hvor prompt () -funktionen bruges inden for hovedmenuen () funktionen. Kompilatoren fortæller dig, at du bruger en funktion uden prototype. Som fejlmeddelelsen siger, erklærer du implicit en funktion. Det er en no-no, men ikke en full-on fejl. >
Den endelige advarsel er en reference tilbage til, hvor funktionen blev kaldt igen i linje 13.
For at sige det kortfattet: Kompilatoren har ingen idé om, hvad der sker med funktionen prompt (). Din kode kompilerer, men kører det er risikabelt.
Øvelse
2 : Rediger kildekoden fra øvelse 10-3. Fjern den funktion prototype, der blev kommenteret på linje 3. Klipp og indsæt (flyt) prompt () funktionen fra bunden af kildekoden Listing til toppen over funktionen () (). Gem, bygg og kør. Undgå funktionsprototypen viser løsningen til øvelse 2.
UNDGÅ FUNKTIONSPROTOTYPEN
#include / * Display prompt * / void prompt (void) {printf ("C: DOS>");} int main () {int loop; char-indgang [32]; loop = 0; mens (sløjfe <5) {prompt (); fgets (input, 31, stdin); loop = loop + 1;} returner (0);}
Skriver først hovedfunktionen (), efterfulgt af andre funktioner giver mulighed for bedre læsbarhed, selvom du er fri til at sætte dine egne funktioner først for at undgå prototyper.Og hvis du ikke gør det, skal du huske på, at andre programmører kan gøre det på den måde, så vær ikke overrasket, når du ser det.
Compiler fejlmeddelelser i kode:: Blokke har parentes efter dem. De parentetiske kommentarer refererer til
switch eller den traditionelle kommandolinje, der muliggør kontrol af en bestemt advarsel. F.eks. Fulgte fejlmeddelelserne fra øvelse 1: 11 Advarsel: implicit funktionskonfiguration 'prompt' (-Wimplicit-function declaration) 20 Advarsel: modstridende typer for 'prompt' (aktiveret som standard) >