Innehållsförteckning:
Video: Supersection Week 1 2024
Konstanter kan vara mycket användbara vid C-programmering när du har något värde som upprepas i ditt program. Genom att förklara en konstant kan du snabbt och enkelt ändra ett värde som används i hela koden genom att ändra deklarationen.
Deklarera konstanter
Till skillnad från variabler deklareras konstanter med hjälp av C-preprocessorn och inte kompilatorn. Här är formatet:
#define VOTING_AGE 18
Direktivet #define är ett preprocessor-kommando. Det följs av namnet på symbolen som definieras, VOTING_AGE. Dessa symboler heter som variabler, men med hjälp av ALL CAPS för konstanter kan du enkelt identifiera konstanter jämfört med variabler i din källkod. Symbolen måste vara allt ett ord. Efter symbolen är ett mellanslag och det värde som symbolen representerar. Det finns ingen lika tecken!
Ta inte med en semikolon om du inte vill att semikolon ska vara en del av konstanten (och det gör du förmodligen inte).
Förprocessorn tar symbolen och gör en sök-och-ersättningsoperation genom hela koden och ersätter symbolen med vad den representerar. I slutändan blir "konstant" ett omedelbart värde. Och genom att använda #define för att skapa konstanten, ger du dig själv flexibiliteten att enkelt ändra den senare.
Använda konstanter i din kod
Konstanta definitioner följer vanligtvis #include-direktiverna högst upp på C-källkoden:
#include #define SPEEDLIMIT 55 #define RATE 15 #define FIRST_TICKET 85 #define SECOND_TICKET 95 #define THIRD_TICKET 100 int main () {int totalt, bra, hastighet; sätter ("Speeding Ticketsn"); / * första biljetten * / hastighet = FIRST_TICKET - SPEEDLIMIT; bra = hastighet * RATE; totalt = totalt + fin; printf ("För att gå% d i en% d zon: $% dn", FIRST_TICKET, SPEEDLIMIT, bra); / * andra biljett * / hastighet = SECOND_TICKET - SPEEDLIMIT; bra = hastighet * RATE; totalt = totalt + fin; printf ("För att gå% d i en% d zon: $% dn", SECOND_TICKET, SPEEDLIMIT, bra); / * tredje biljetten * / hastighet = THIRD_TICKET - SPEEDLIMIT; bra = hastighet * RATE; totalt = totalt + fin; printf ("För att gå% d i en% d zon: $% dn", THIRD_TICKET, SPEEDLIMIT, bra); / * Visa totalt * / printf ("nTotal i böter: $% dn", totalt); returnera (0);}
Skriv detta i din redigerare, spara det, kompilera det och köra det.
Antag att du har slutfört programmet, men sedan byter kommunfullmäktige hastighetsgränsen från 55 mph till 60 mph. Dessutom har böterna hoppat från $ 15 till $ 26 för varje mil per timme du går över gränsen.Eftersom du använde konstanter kan du göra ändringarna på ett ställe och få dem att sippra ner till hela koden.
I detta fall skulle du ändra dina ständiga deklarationer till detta:
#define SPEEDLIMIT 60 #define RATE 26
Andra saker du kan #define
Direktivet #define är inte begränsat till att bara skapa konstanter för dig. Du kan definiera någonting med #define-direktivet, och ersätter i huvudsak stora delar av ditt program med vad du vill. Ett bra exempel på när du kanske vill göra detta kan vara så här:
#define ASK_PROMPT printf ("Vill du fortsätta (Y / N)?");
På så sätt kan programmeraren bara skriva ASK_PROMPT i koden, som globalt ersätts med printf () -satsen när koden sammanställs. (Som en bonus kan programmeraren universellt fixa varje fråga genom att bara ändra den enda #definen.)