Hjem Personlig finansiering Hvordan prototype en funksjon i C-programmering - dummies

Hvordan prototype en funksjon i C-programmering - dummies

Video: Arduino GSM Modülü Kümes Sıcaklık Projesi || FireBeetle & Micro Solar Power Manager 2024

Video: Arduino GSM Modülü Kümes Sıcaklık Projesi || FireBeetle & Micro Solar Power Manager 2024
Anonim

Hva skjer når du ikke prototype? Som med alt i C-programmering, når du går opp, kan kompilatoren eller linkeren du vite med en feilmelding - eller programmet kjøres bare ikke riktig. Det er ikke verdens ende - nei, ikke som å programmere en militærrobot eller utforme genetisk kode for en ny art av Venus flytrap.

GRUNNFUNKSJON; INGEN RETURN

#include void prompt (); / * funksjon prototype * / int main () {int loop; char-inngang [32]; løkke = 0; mens (loop);}

Øvelse 1 : Endre kildekoden fra grunnleggende funksjon, ingen retur. Skriv ut prototypen fra linje 3. Bygg resultatet.

Kompilatorfeil er fantastiske ting, herlig nøyaktig, men helt kryptisk. Her er feilmeldingen generert av Kode:: Blokker, men bare de relevante delene av meldingen:

13 Advarsel: spørre "23 Advarsel: motstridende typer for" prompt "13 Advarsel: tidligere implisitt deklarasjon av" prompt "var her

Den første advarselen skjer på linje 13 i kildekoden filen, der funksjonen prompt () brukes inne i hovedmenyen () -funksjonen. Kompilatoren forteller deg at du bruker en funksjon uten prototype. Som feilmeldingen sier, erklærer du implisitt en funksjon. Det er en nei, men ikke en fullstendig feil. >

Den andre advarselen oppstår der ledeteksten () -funksjonen bor i programmet. I kildekoden er den på linje 23. Advarselen sier at pro mpt () ble allerede erklært (på linje 11) og at den andre bruken kan være i konflikt med den første.

Den endelige advarselen er en referanse tilbake til hvor funksjonen ble ringt, igjen på linje 13.

For å si det kortfattet: Kompilatoren har ingen anelse om hva som skjer med funksjonen prompt (). Koden din kompilerer, men kjører den er risikabelt.

Du kan trekke konklusjonen om at prototyping er en absolutt nødvendighet i din C-kode. Det er ikke helt sant. Du kan unngå prototyping ved å omorganisere funksjonene i kildekoden. Så lenge en funksjon er oppført før den blir brukt, trenger du ikke en prototype.

Øvelse

2 : Rediger kildekoden fra øvelse 10-3. Fjern funksjonsprototypen som ble kommentert ved Linje 3. Klipp og lim inn (flytt) prompt () -funksjonen fra bunnen av kildekoden Listing to the top, over main () -funksjonen. Lagre, bygge og kjøre. Unngå funksjonens prototype viser løsningen for øvelse 2.

UNNGÅ FUNKSJONSPROTOTYPEN

#include / * Display prompt * / void prompt (void) {printf ("C: DOS" "; int main () {int loop; char-inngang [32]; løkke = 0; mens (loop <5) {prompt (); fgets (inngang, 31, stdin); loop = loop + 1;} return (0);}

Skriver hovedfunksjonen () først, etterfulgt av andre funksjoner, gir bedre lesbarhet, selv om du er fri til å sette dine egne funksjoner først for å unngå prototyping.Og hvis du ikke gjør det, husk at andre programmerere kan gjøre det på den måten, så vær ikke overrasket når du ser den.

Kompilatorfeilmeldinger i kode:: Blokker har parenteser etter dem. De parentetiske kommentarene refererer til

bryteren , eller det tradisjonelle kommandolinjealternativet, som gjør det mulig å sjekke en bestemt advarsel. F.eks. Leses feilmeldingene fra øvelse 1: 11 Advarsel: implisitt deklarasjon av funksjonen "prompt" (-Forklaring av funksjonsdeklarasjon) 20 Advarsel: motstridende typer for "prompt" (aktivert som standard) >

Hvordan prototype en funksjon i C-programmering - dummies

Redaktørens valg

Speil Lockup (MUP) på Nikon D7100-dummies

Speil Lockup (MUP) på Nikon D7100-dummies

En komponent i det optiske systemet til din Nikon D7100 kamera er et speil som beveger seg hver gang du trykker på lukkerknappen. Den lille vibrasjonen som følge av speilets handling kan føre til svak utryddelse av bildet når du bruker en veldig langsom lukkerhastighet, skyter med en lang teleobjektiv, ...

Opptaksmuligheter på Nikon D5300 - dummies

Opptaksmuligheter på Nikon D5300 - dummies

Du kan styre noen få aspekter av din filmoppgave på din Nikon D5300. Du kan manipulere videoen din for å skape en rekke effekter. Følgende liste går gjennom disse alternativene: Eksponeringsmodus: Du kan ta opp filmer i hvilken som helst eksponeringsmodus (Auto, Scenemodus, Effektmodus, P, M, og så videre). Som med fortsatt ...

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Følgende retusjonsverktøy på din Nikon D5600 kamerajustering eksponering og farge: D-Lighting, Quick Retouch, Filter Effects og Monochrome. Selv om disse verktøyene ikke får deg til å velge ett kamera over en annen, hvis du allerede har en Nikon D5600, er de tilgjengelige, så du kan også lære å bruke dem! D-Lighting: Active D-Lighting ...

Redaktørens valg

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

Hvis du vurderer bli med i en fantasy basketball liga, må du ta hensyn til følgende DOs og DON'Ts før du vurderer spillerne du vil utarbeide på laget ditt. Kreditt: © iStockphoto. com / IS_ImageSource Fantasy basketball draft pick DOS I de fleste fantasy basketball ligaer bestemmer kommisjonen (personen som setter opp ligaen) bestillingen i ...

Linjene og dimensjonene til en basketballbane - dummies

Linjene og dimensjonene til en basketballbane - dummies

En basketballbane har symmetri; Den ene halvdelen av retten er et speilbilde av den andre. Hele basketballbanen (se figur 1) er 94 fot med 50 fot. På hver halvplass viser malte linjer fritt korsbanen og sirkelen, samt trepunktsbuen, hvis avstand fra kurven varierer basert ...

Kjøp av gratis agenter i fantasy fotball - dummies

Kjøp av gratis agenter i fantasy fotball - dummies

I løpet av fantasy fotball sesongen, spillere som ikke blir utarbeidet bli gratis agenter - spillere tilgjengelig for enhver ligamatch villig til å slippe en eid spiller. Bruk gratis agentbassenget til å erstatte en skadet spiller eller noen som bare ikke lever opp til dine forventninger. Bruk disse tipsene for å finne en gratis agent for å ...

Redaktørens valg

Grunnleggende for din iOS-app - dummies

Grunnleggende for din iOS-app - dummies

Heldigvis mesteparten av det du trenger å gjøre så langt som iOS animasjon er opptatt er allerede bygd inn i rammen. Noen visningsegenskaper kan animeres, noe som betyr at du bare må fortelle visningen hvor du skal begynne og hvor du skal avslutte flyttingen, og noen få andre valgfrie parametere, og du er ferdig. ...

Montering av verktøylinjen for Android App Development - dummies

Montering av verktøylinjen for Android App Development - dummies

Når du vet at du er klar til være en Android-utvikler, ta tak i datamaskinen din og få sprekker på å installere verktøyene og rammene som er nødvendige for å bygge ditt første blockbuster-program. Linux-kjernen Android ble opprettet på toppen av åpen kildekode Linux-kjernen. Android-teamet valgte å bruke denne kjernen fordi den ga bevist ...

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Cocoa Touch-laget inneholder det meste av objektet -orientert utvikler-vendt rammer for å bygge iOS applikasjoner. Det er ditt eneste utgangspunkt for app-utvikling. Apple-guiderne oppfordrer deg til å undersøke teknologiene i dette laget for å se om de oppfyller dine behov, før du ser på de andre lagene. Med andre ord, Apple har til hensikt å ...