Hjem Personlig finansiering Hvordan man prototype en funktion i C-programmering - dummier

Hvordan man prototype en funktion i C-programmering - dummier

Video: Map - Part 2 of Functional Programming in JavaScript 2024

Video: Map - Part 2 of Functional Programming in JavaScript 2024
Anonim

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 anden advarsel opstår, hvor prompt () -funktionen bor i programmet. I kildekoden er den på linje 23. Advarslen fastslår, at pro mpt () blev allerede erklæret (på linje 11), og at den anden brug kan være i konflikt med den første.

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.

Du kan drage den konklusion, at prototyper er en absolut nødvendighed i din C-kode. Det er ikke helt sandt. Du kan undgå prototyper ved at omorganisere funktionerne i din kildekode. Så længe en funktion er opført, før den bruges, behøver du ikke en prototype.

Ø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) >

Hvordan man prototype en funktion i C-programmering - dummier

Valg af editor

Routingprotokollvalgskriterier - dummies

Routingprotokollvalgskriterier - dummies

Folk bruger to grundlæggende metoder til klassificering af ruteprotokoller - hvor de bruges og af hvordan de beregner routing. Du kan se, hvordan du vælger protokoller baseret på, hvor du planlægger at bruge dem, måden protokollen håndterer data på, og hvordan din router vælger hvilken protokol der skal bruges, når mere end en ...

Indstilling af Cisco Device Timeouts - dummies

Indstilling af Cisco Device Timeouts - dummies

Uden at indstille timeout-indstillinger for Cisco Device Privileged EXEC-tilstand, dine sessioner forbliver åbne på ubestemt tid. Dette er især farligt for konsolporten. Uden timeout parametre aktiveret, hvis administratoren ikke logger ud, har en indtrenger adgang og ingen problemer får forhøjede tilladelser. For at undgå denne potentielt farlige situation behøver du kun skrive a ...

Router Ethernet-interfacekonfiguration - dummies

Router Ethernet-interfacekonfiguration - dummies

Du starter processen med at konfigurere router Ethernet-grænseflader ved at foretage en fysisk forbindelse til din router. Når du har etableret forbindelsen, kan du fortsætte med den grundlæggende konfiguration af Ethernet-, Fast Ethernet- eller Gigabit Ethernet-forbindelser. Tilslutning til din router For at starte din konfiguration skal du oprette forbindelse til din router og komme ind i ...

Valg af editor

Med fokus på nogle hurtige løsninger til fotofile - dummier

Med fokus på nogle hurtige løsninger til fotofile - dummier

På trods af alle kameraproducenters forsøg på at gør fotografering idiotsikker, vi laver alle stadig mindre end perfekte billeder. Nogle gange er vi problemet - vi er for tætte eller for langt væk, eller kan ikke finde ud af, hvordan du bruger kameraets tåbebeskyttelsesfunktioner. Nogle gange er problemet, at virkeligheden nøjagtigt nægter at overholde vores forventninger: Himlen er ...

Lær at kende dine Manga Studio Layer Typer - Dummies

Lær at kende dine Manga Studio Layer Typer - Dummies

Manga Studio giver et udvalg af lag typer til brug i dit arbejde. Når du lærer at forstå og forstå, hvordan lag fungerer, vil du spekulere på, hvordan du nogensinde har arbejdet uden dem. Her er en introduktion til, hvad Manga Studio har til opbevaring for dig i sin lag lineup: Raster Layer: Dette er det grundlæggende ...

Få dit mobilwebsted tildelt på sociale bogmærker - dummies

Få dit mobilwebsted tildelt på sociale bogmærker - dummies

Populariteten af ​​websider med antallet af stemmer, de får. Resultatet er, at disse websteder er gode ressourcer til folk, der ønsker at holde øje med, hvad der er populært online. De fleste tilbyder speciel software, der gør det nemt for alle at stemme på et websted. Få dit websted opført ...

Valg af editor

Automatisk opdatering af din journal i Outlook 2000 - dummies

Automatisk opdatering af din journal i Outlook 2000 - dummies

Stardat 2001: På Star Trek, Virksomheden gør trofast daglige poster i kaptajnens log. Kaptajnen registrerer oplysninger om de planeter, besætningen har udforsket, udlændinge, de har kæmpet, og de bizarre fænomener, de har observeret ud i det dybe rum, hvor ingen er gået før! Nu er det din tur. Bare ...

Slet og gendan kontakter i Outlook - dummies

Slet og gendan kontakter i Outlook - dummies

Med Outlook, du behøver ikke at rive sider ud af en papir adressebog for at slippe af med en persons oplysninger; bare slet kontakten. Slettede kontakter går til mappen Slette emner i Outlook, indtil næste gang du tømmer mappen Slette elementer, så du kan hente dem derfra, hvis du laver ...