Мавзу: Локал ва глобал ўзгарувчилар. Функсиялардан фойдаланиш. Олдиндан аниқланган функсиялар. Фойдаланувчи томонидан аниқланадиган функсиялар



Download 30,56 Kb.
bet2/5
Sana11.03.2022
Hajmi30,56 Kb.
#490929
TuriПрограмма
1   2   3   4   5
Bog'liq
1-Мавзу

:: aмали
Қайд қилингандан, локал ўзгарувчи эълони худди шу номдаги глобал ўзгарувчини “беркитади” ва бу жойдан глобал ўзгарувчига мурожат қилиш имкони бўлмай қолади. С++ тилида бундай ҳолларда ҳам глобал ўзгарувчига мурожат қилиш имкони мавжуд ва бунинг учун кўриниш соҳасига рухсат бериш амалидан фойдаланиш керак бўлади: ўзгарувчи олдига иккита нуқта (“::”) қўйиш зарур бўлади. Мисол тариқасида қуйидаги програмани келтирамиз:
#inilude
//глобал ўзгарувчи эълони
int uzg=5;
int main( )
{
//локал ўзгарувчи эълони
int uzg=70;
//локал ўзгарувчини чоп этиш
cout << uzg << ‘/n’;
//глобал ўзгарувчини чоп этиш
cout << ::uzg << ‘/n’;
return 0;
}
Программа ишлаши натижасида экранга олдин 70 ва куйин 5 сонлари чоп этилади.
Хотира синфлари
Ўзгарувчиларнинг кўриниш соҳаси ва амал қилиш вақтини аниқловчи ўзгарувчилар модификатори мавжуд.

Модификатор

Қўлланиши

Амал қилиш
соҳаси

Яшаш даври

auto

Глобал

блок

вақтинча

register

Локал

блок

вақтинча

exteru

Глобал

блок

вақтинча

static

Локал

блок

доимий

Глобал

файл

доимий

volatile

Глобал

файл

доимий

Автомат ўзгарувчилар
auto модификатори локал ўзгарувчилар эълонида ишлатилади. Одатда локал ўзгарувчилар эълонида бу модификатор келишув бўйича қўлланилади ва шу сабабли амалда уни тушуриб қодирилади:
# include
int main( )
{
auto int X= 2; // int X = 2; билан эквивалент
cout <returu 0;
}
auto модификатори блок ичида эълон қилинган локал ўзгарувчиларга қўлланилади. Бу ўзгарувчилар блокдан чиқиши билан автомат равишда йўқ бўлиб кетади.

Регистр ўзгарувчилар
register модификатори компиляторга кўрсатилган ўзгарувчини процессор регистрларига жойлаштиришга ҳаракат қилишни тайинлайди. Агар бу ҳаракат натижа бермаса ўзгарувчи auto туридаги локал ўзгарувчи сифатида амал қилади.
Ўзгарувчиларни регистрларда жойлаштириш программа кодини бажариш тезлиги бўйича оптималлаштиради, чунки процессор хотирадаги берилганларга нисбатан регистрдаги қийматлар билан анча тез ишлайди. Лекин регистрлар сони чекланганлиги учун ҳар доим ҳам ўзгарувчиларни регистрларда жойлаштиришнинг иложи бўлмайди.
#include < iostream.h >
int main( )
{
register int Reg;

returu 0;
}
register модификатори фақат локал ўзгарувчиларига нисбатан қўлланилади, глобал ўзгарувчиларга қўллаш компиляция хатосига олиб келади.

Ташқи ўзгарувчилар ва функциялар
Агар программа бир нечта модулдан иборат бўлса, улар қандайдир ўзгарувчи орқали ўзаро қиймат алмашишлари мумкин (файллар орасида). Бунинг учун ўзгарувчи модулда глобал тарзда эълон қилинади ва бошқа файлда (модулда) у кўриниши учун extern модификатори билан эълон қилинади. Бошқа модификаторларда фарқли равишда extern модификатори ўзгарувчини бошқа файлда эълон қилинганлигини билдирилади. Ташқи ўзгарувчилар ишлатилган ирограммани кўрайлик.
//Sarlavha.h файлида
void Bayroq_Almashsin(void);
// modul_1.cpp файлида
bool Bayroq;
void Bayroq_Almashsin(void);
{Bayroq = !Bayroq; }
// masala.cpp файлида
# include < iostream.h >
# include
# include
extern bool Bayroq;
int main( )
{
Bayroq_Almashsin( )
if (Bayroq)
cout << “Bayroq TRUE” <else cout << “Bayroq FALSE” <return 0;
}
Олдин sarlavha.h файлида Bayroq_Almashsin( ) функция сарлавҳаси эълон қилинади, кейин modul_1.срр файлида ташқи ўзгарувчи эълон қилинади ва Bayroq_Almashsin( ) функцияси танаси аниқланади. Ва ниҳоят, masala.cpp файлида Bayroq ўзгарувчиси ташқи деб эълон қилинади.


Download 30,56 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish