Дефиниране на константи с директивата #deiine
За да дефинирате константа по традиционния начин, въведете следния израз:
#define studentsPerClass 15
Имайте предвид, че константата studentsPerClass няма конкретен тип (int, char и т.н.). Директивата #define извършва просто заместване на текст. Всеки път, когато препроцесорът срещне думата studentsPerClass, той я замества с литерала 15.
Тъй като препроцесорът работи преди компилатора, компилаторът никога няма да види константата, а ще види само числото 15.
Дефиниране на константи с ключовата дума const
Въпреки че директивата #define върши своята работа, C++ има нов, по-удобен начин за дефиниране на константи:
const unsigned short int studentsPerClass = 15;
Този пример също декларира символна константа с име studentsPerClass, но този път типът е зададен на unsigned short int. Този метод има няколко предимства, като улеснява поддържането на вашата програма по-късно и предотвратява някои грешки. Най-важната разлика между тази константа и предишната (декларирана с директивата #define) е, че тя има тип и компилаторът може да проследи използването й само за предназначението й (т.е. според декларирания тип).
Препоръчително:Уверете се, че стойностите на променливите не надвишават допустимата граница. Дайте на променливите смислени имена, които отразяват тяхната цел. Използвайте късите и дългите типове, за да управлявате по-ефективно паметта на вашия компютър.
Отхвърлено: Не използвайте ключови думи като имена на променливи.
Enum константи
Енумите ви позволяват да създавате нови типове данни и след това да дефинирате променливи за тяхтипове, чиито стойности са ограничени до набор от постоянни стойности. Например, можете да декларирате C0L0R като enum и да дефинирате пет стойности за него: RED, BLUE, GREEN, WHITE и BLACK.
Изброяването се създава с помощта на ключовата дума enum, последвана от името на типа, отваряща фигурна скоба, разделен със запетая списък с постоянни стойности, затваряща фигурна скоба и точка и запетая. Например:
Този израз прави две неща.
1. Създава се изброяване с име C0L0R, което е нов тип.
2. Дефинирани са символни константи: RED със стойност 0; СИН със стойност 1; ЗЕЛЕНО със стойност 2 и т.н.
Всяка константа за изброяване има съответстваща целочислена стойност. По подразбиране първата константа се инициализира на 0, а всяка следваща константа се инициализира на стойност с едно по-голяма от предишната. Всяка константа обаче може да бъде инициализирана с произволна стойност, в който случай изрично неинициализираните константи ще продължат възходящата последователност, започвайки от стойността, която ги предшества. Така, ако пишем
тогава червената константа ще има стойност 100; синята константа е 101; постоянно ЗЕЛЕНО - 500; WHITE константа - 501; константата BLACK е 700.
Вече могат да се дефинират променливи от тип C0L0R, но на всяка от тях може да бъде присвоена само една от изброените стойности (в този случай ЧЕРВЕНО, СИНЬО, ЗЕЛЕНО, БЯЛО или ЧЕРНО, или 100, 101, 500, 501 или 700). На променливата C0L0R може да се присвои произволна цветова стойност. Всъщност всяка целочислена стойност може да бъде присвоена на тази променлива, дори и да не съответства на нито един от разрешените цветове, но в този случай един приличен компилатор трябва да се възмути и да покаже предупредително съобщение. Важно е да разберете, че променливите enum всъщност савсъщност са от тип unsigned int и на целочислени променливи се присвояват дадените константи за изброяване. Понякога обаче, когато работите с цветове, дни от седмицата или други подобни набори от стойности, е хубаво да можете да извиквате тези стойности по име. Листинг 3.7 показва програма, която използва тип enum.
Списък 3.7. Използване на enum
5: сряда, четвъртък, петък, събота >;