Hem Personliga finanser Hur man prototyper en funktion i C-programmering - dummies

Hur man prototyper en funktion i C-programmering - dummies

Video: C programmering svenska - 14 - Funktioner 2024

Video: C programmering svenska - 14 - Funktioner 2024
Anonim

Vad händer när du inte prototyper? Som med något i C-programmering, när du går upp, kan kompilatorn eller länken låta dig veta med ett felmeddelande - eller programmet körs inte korrekt. Det är inte världens ände - nej, inte som att programmera en militärrobot eller utforma genetisk kod för en ny art av Venus flytrap.

GRUNDFUNKTION; INGA RETUR

#include void prompt (); / * funktion prototyp * / int main () {int loop; char ingång [32]; slinga = 0; medan (loop ");}

Motion 1 : Ändra källkoden från Basic Function, No Return. Kommentera prototypen från rad 3. Bygg resultatet.

Kompilatorfel är underbara saker, härligt noggranna men ändå fullständigt kryptiska. Här visas felmeddelandet som genereras av Kod:: Blocks, men endast de relevanta delarna av meddelandet:

13 Varning: implicit funktionskänsla ' snabbvarning "23 Varning: motstridiga typer för" prompt "13 Varning: tidigare implicit deklaration av" prompt "var här

Den första varningen sker vid rad 13 i källkodsfilen, där snabbfunktionen () används inom huvuddelen () -funktionen. Kompilatorn berättar att du använder en funktion utan prototyp. Som felmeddelandet säger, förklarar du implicit en funktion. Det är ett nej, men inte ett fullständigt fel. >

Den andra varningen sker där funktionen prompt () bor i programmet. I källkoden står den på linje 23. Varningen säger att pro mpt () förklarades redan (vid rad 11) och att den andra användningen kan störa den första.

Den slutliga varningen är en referens till var funktionen heter, igen vid rad 13.

För att uttrycka det kortfattat: Kompilatorn har ingen aning om vad som händer med funktionen prompt (). Din kod compilerar, men kör den är riskabel.

Du kan dra slutsatsen att prototyper är en absolut nödvändighet i din C-kod. Det är inte helt sant. Du kan undvika prototyper genom att omordna funktionerna i din källkod. Så länge en funktion listas innan den används, behöver du inte en prototyp.

Övning

2 : Redigera källkoden från Exercise 10-3. Ta bort funktionsprototypen som kommenterades på Linje 3. Klipp och klistra (flytta) funktionen prompt () från botten av källkoden Listning till toppen ovanför huvudfunktionen (). Spara, bygg och kör. Undvik funktionsprototypen visar lösningen för övning 2.

UNDVIKA FUNKTIONSPROTOTYPEN

#include / * Display prompt * / void prompt (void) {printf ("C: DOS>");} int main () {int loop; char ingång [32]; slinga = 0; medan (slinga <5) {prompt (); fgets (input, 31, stdin); loop = loop + 1;} returnera (0);}

Skriva huvudfunktionen () först, följt av andra funktioner möjliggör bättre läsbarhet, även om du är fri att lägga egna funktioner först för att undvika prototyper.Och om du inte gör det, kom ihåg att andra programmerare kan göra det på det sättet, så bli inte förvånad när du ser den.

Kompilatorns felmeddelanden i kod:: Block har parentes efter dem. De parentesiska kommentarerna hänvisar till

switch , eller det traditionella kommandoradsalternativet, som möjliggör kontroll av en viss varning. Till exempel läser felmeddelandena från Exercise 1 fullständigt: 11 Varning: implicit deklaration av funktionen "prompt" (-Wimplicit-function-deklaration) 20 Varning: motstridiga typer för "prompt" (aktiverad som standard) >

Hur man prototyper en funktion i C-programmering - dummies

Redaktörens val

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...