type qualifiers storage classes c
Значение на типовите квалификации и класовете за съхранение в C ++.
В това Ексклузивна серия за обучение на C ++ , ще разширим допълнително темата за променливите и ще видим квалификаторите на типове и класовете за съхранение в C ++ в този урок. Въпреки че това е малка тема, тя е много важна и значима по отношение на програмирането на C ++.
Класификаторите на типа в C ++ не променят значението на променливите или обектите, с които се използват, а само добавят допълнителна информация към обекта.
Какво ще научите:
Въведете квалификатори в C ++
Типовите квалификатори в C ++ добавят допълнителни свойства към променливата като променлива, която е константа или нестабилна.
Типовите квалификатори изразяват начина, по който се осъществява достъп до променлива или където променливата се съхранява в паметта, като запазва значението или интерпретацията на променливата еднакви. По някакъв начин квалификаторите на типа добавят повече усъвършенстване на променливите.
В C ++ квалификаторът на типа е посочен точно преди спецификатора на типа (тип данни) на променливата.
Класификаторите на типа в C ++ са класифицирани, както е показано по-долу:
# 1) const
Спецификаторът на типа „const“ е да дефинира обектите на типа const. Const обект или променлива не могат да бъдат модифицирани, след като бъдат декларирани. Ако се направи опит да се модифицира const обект или променлива, тогава компилаторът поражда грешка. Вече видяхме константи / литерал в предишния ни урок.
Определението за константи, използващи ключова дума „const“, съответства на квалификатора на типа „const“.
# 2) летливи
Класификаторът на типа „volatile“ означава, че стойността на променливата, маркирана volatile, може да бъде променена по други начини, които не са определени от програмата. Променливите, които са променливи, се променят обикновено поради някои външни фактори и не е задължително поради програмата. С други думи, те са летливи по природа.
Например, променлива, която отчита температурата в реална дума, може да се превърне в нестабилна, тъй като температурата на четене може да не се контролира напълно от програмата.
# 3) променлив
“Изменяем” тип квалификатор прави членовете или променливите модифицируеми.
Изменяемият квалификатор обикновено се прилага за нестатични членове на клас от неконстантен и нереферентен тип. Според конкретни ситуации може да се нуждаем от някои променливи, за да останем неизменни (не може да се променя), а някои променливи да бъдат променливи. Този тип квалификатор е от голяма помощ, когато искаме променливи характеристики.
Класове за съхранение в C ++
Досега обсъдихме подробно всички променливи C ++. Видяхме, че променливите се декларират със съответните им типове данни и след това се използват в програмата. За да дефинираме напълно променлива, ние също изискваме класове за съхранение освен техните типове данни.
Въпреки че досега не сме посочили класове за съхранение за променливи, имаше клас за съхранение по подразбиране “auto”, който беше приложен към всички променливи.
И така, какви са класовете за съхранение?
Класовете за съхранение указват как променливата или функция трябва да бъдат третирани от компилатора и как съхранението трябва да бъде разпределено за променлива. Той определя видимостта или обхвата и живота на променлива. Животът на променливата е колко дълго променливата ще остане активна.
Видимостта или обхватът на променливата е до кои функции или модули променливата ще бъде достъпна. Тези класове за съхранение са посочени преди типа данни на променливата.
В C ++ имаме следните класове за съхранение:
# 1) Клас за автоматично съхранение
Това е класът за съхранение по подразбиране. Класът за съхранение “Auto” се прилага към локалните променливи и автоматично се присвоява от компилатора към локални променливи. Локалните променливи, предшествани от ключовата дума „auto“, остават активни във функцията, в която са декларирани, и излизат извън обхвата, след като функцията излезе.
Ако променливите с клас на автоматично съхранение не са инициализирани или им е присвоена някаква стойност, тогава те имат боклук или недефинирани стойности.
Нека видим пример за автоматични променливи в програма C ++.
#include using namespace std; int main() { int i; float f; cout<<'Variable i = '< # 2) Регистрирайте клас за съхранение Когато имаме изискване променливата да се нуждае от по-бърз достъп, тогава използваме клас за съхранение на регистрите. Така че, вместо да съхраняват променливите в паметта с произволен достъп (RAM), тези променливи се съхраняват в регистъра на процесора и имат размер, равен на този на регистър.
Освен това, тъй като тези променливи нямат място в паметта, не можем да използваме оператора ‘&’ с тези променливи.
Наличието на променлива с клас за съхранение на регистъра не гарантира, че променливата винаги ще се съхранява в регистъра. Вместо това той просто предполага, че променливата може да се съхранява в регистър и е напълно зависима от хардуера и изпълнението.
Регистрите на променливите имат обхват и време на живот, подобни на автоматичните променливи.
Например,
#include using namespace std; int main() { int i; register float f; cout<<'Variable i = '< # 3) Клас за външно съхранение Класът за външно съхранение се изисква, когато променливите трябва да се споделят в множество файлове. Външните променливи имат глобален обхват и тези променливи са видими извън файла, в който са декларирани.
Тъй като външните променливи са променливите, декларирани и дефинирани извън в друг файл, те не се инициализират.
Външните променливи имат общ обхват и продължителността на екстерналните променливи е толкова дълго, колкото програмата, в която са обявени за прекратени.
Външните променливи могат да бъдат декларирани както следва:
extern int temp; int temp;
В горния пример имаме две декларации на променливи със същото име, но първата е външната променлива, дефинирана другаде. Тази външна променлива ще бъде полезна, когато включим файла източник, в който външната променлива temp е дефинирана в нашата програма.
# 4) Клас на статично съхранение
Класът за статично съхранение казва на компилатора да поддържа стойността на променливата през целия живот на програмата. Статичните променливи са подобни на локалните променливи, но са предшествани от „статична“ ключова дума.
За разлика от локалните променливи, които излизат извън обхвата след излизане на функцията, статичните променливи не излизат извън обхвата, когато функция или блок излиза и техните стойности се запазват между извикванията на функции.
Статичните променливи се инициализират и съхранението им се разпределя само веднъж в живота на програмата. Статичните променливи се инициализират до 0, ако не са вече инициализирани по време на декларацията.
Нека видим следния пример, за да разберем по-добре класа на статично съхранение.
#include using namespace std; void printvar() { static int var; var++; cout<<'static variable var = '< Изход:
извикване на printvar 1: статична променлива var = 1
обаждане на printvar 2: статична променлива var = 2
извикване на printvar 3: статична променлива var = 3
извикване на printvar 4: статична променлива var = 4
В горния код имаме функция ‘printvar’, в която сме декларирали статична променлива var от тип int. След това увеличаваме тази променлива и я отпечатваме. В основната функция извикваме функцията printvar четири пъти.
Сега проверете изхода. Резултатът показва, че при всяко извикване на функция статичната променлива var се увеличава с 1 от предишната си стойност. Това е статичният клас за съхранение, който помага на променливата да поддържа стойността си между извикванията на функции. Статичната променлива не се инициализира за всяко извикване на функция.
Трябва също да забележим, че във функцията printvar току-що сме декларирали статичната променлива и не сме я инициализирали. Забележително е, че когато не инициализираме статичните променливи, те се присвояват с начална стойност 0.
Забележка: Класът на статично съхранение може да се приложи и към глобални променливи. В този случай променливата ще има глобален обхват и допълнително статично съхранение.
# 5) Променлив клас за съхранение
Изменяемият клас за съхранение се прилага само към обектите на класа. Чрез прилагане на променливия клас за съхранение, член на обект може да замени функцията на член ‘const’. Това означава, че изменяем член или обект може да бъде модифициран от функция на член, която е ‘const’.
Ще научим повече за функциите и обектите const, както и за променящите се членове в следващите ни уроци, когато научим за обектно-ориентирано програмиране в C ++.
Заключение
Това е всичко за спецификаторите на типа и класовете за съхранение в C ++. Надяваме се, че успяхме да изясним всички концепции за класовете за съхранение и спецификаторите на типа чрез този урок.
как изглежда клавишът wep
В нашия предстоящ урок ще научим повече за различните оператори, използвани в C ++, заедно с тяхното използване.
=> Проверете тук пълната серия за обучение на C ++
Препоръчително четене
- Променливи в C ++
- Променливи на Python
- Урок за интерфейс на Java и абстрактен клас с примери
- Преобразувайте тип в C ++
- VBScript променливи: Как да декларирам и използвам променливи - VBScript Dim
- Променливи и функции на JMeter
- 10 НАЙ-ДОБРИ доставчици на безплатни облачни хранилища (Онлайн съхранение 2021)
- Видове тестове за миграция: С тестови сценарии за всеки тип