Qarshi muhandislik-iqtisodiyot instituti "axborot texnologiyalari" kafedrasi "TEXNIK TIZIMLARDA axborot texnologiyalari"



Download 2,19 Mb.
Pdf ko'rish
bet45/105
Sana26.03.2022
Hajmi2,19 Mb.
#510793
1   ...   41   42   43   44   45   46   47   48   ...   105
Bog'liq
ma`ruza matni 2018

volatile
sinfi o‘zgaruvchilari. Agar dasturda o‘zgaruvchini birorta tashqi qurilma yoki boshqa 
dastur bilan bog‘lash uchun ishlatish zarur bo‘ladigan bo‘lsa, u volatile modifikatori bilan e’lon 
qilinadi. Kompilyator bunday modifikatorli o‘zgaruvchini registrga joylashtirishga harakat 
qilmaydi. Bunday o‘zgaruvchilar e’loniga misol quyida keltirilgan: 
volatile short port_1; 
volatile const int Adress=0x00A2; 
Misoldan ko‘rinib turibdiki, volatile modifikatorli o‘zgarmas ham e’lon qilinishi mumkin. 
Nomlar fazosi. 
Ma’lumki, dasturga qo‘shilgan sarlavha fayllarida e’lon qilingan identifikator va 
o‘zgarmaslar kompilyator tomonidan yagona global nomlar fazosiga kiritiladi. Agar dastur ko‘p 
miqdordagi sarlavha fayllarni ishlatsa va undagi identifikatorlar (funksiya nomlari va
o‘zgaruvchilar nomlari, sinflar nomlari va hakozalar) va o’zgarmaslar nomlari turli dastur 
tuzuvchilar tomonidan mustaqil ravishda aniqlangan bo‘lsa, bir xil nomlarni ishlatish bilan 
bog‘liq muommolar yuzaga kelish ehtimoli katta bo‘ladi. Nomlar fazosi tushunchasining 
kiritilishi mazkur muammoni ma’lum bir ma’noda hal qilishga yordam beradi. Agar dasturda
yangi identifikatorni aniqlash kerak bo‘lsa va xuddi shu nomni boshqa modullarda yoki 
kutubxonalarda ishlatishi xavfi bo‘ladigan bo‘lsa, bu identifikatorlar uchun o’zining shaxsiy 
nomlar fazosini aniqlash mumkin. Bunga namespace kalit so‘zidan foydalanilgan holda 
erishiladi: 
namespace  

//e’lonlar 

Nomlar fazosi ichida e’lon qilingan identifikatorlar faqat  
ko‘rinish sohasida bo‘ladi va yuzaga kelishi mumkin bo‘lgan kelishmovchiliklarning oldi 
olinadi.
Misol tariqasida quyidagi nomlar fazosini yarataylik: 
namespace Shaxsiy_nomlar 
{int x,y,z; 
void Mening_funksiyam(char belgi); 



Kompilyatorga konkret nomlar fazosidagi nomlarni ishlatish kerakligini ko‘rsatish uchun 
ko‘rinish sohasiga ruxsat berish amalidan foydalanish mumkin: 
Shaxsiy_nomlar::x=5; 
Agar dastur matnida konkret nomlar fazosiga nisbatan ko‘p murojaat qilinadigan bo‘lsa 
uning namespace qurilmasini ishlatish orqali yozuvni soddalashtirish mumkin: 
using namespace 
Masalan, 
using namespace Shaxsiy_nomlar; 
ko‘rsatmasi kompilyatorga, bundan keyin toki navbatdagi using uchramaguncha
Shaxsiy_nomlar fazosidagi nomlar ishlatilishi kerakligini bildiradi: 
x=0; y=z=10; 
Mening_funksiyam(‘A’); 
Dastur va unga qo‘shilgan sarlavha fayllari tomonidan aniqlanadigan nomlar fazosi 
std
deb 
nomlanadi. Standart fazoga o‘tish kerak bo‘lsa
using namespace std; 
ko‘rsatmasi beriladi. 
Agar birorta nomlar fazosidagi alohida bir nomga murojaat qilish zarur bo‘lsa, using 
qurilmasini boshqa shaklida foydalaniladi. Misol uchun
using namespace std; 
using namespace Shaxsiy_nomlar::x; 
ko‘rsatmasi x identifikatorini Shaxsiy_nomlar
fazosidan ishlatish kerakligini 
bildiradi. 
Shuni qayd etish kerakki, using namespace qurilmasi standard nomlar fazosi ko‘rinish 
sohasini berkitadi va undagi nomga murojaat qilish uchun ko‘rinish sohasiga ruxsat berish 
amalidan (std:

) foydalanish zarur bo‘ladi. 
Nomlar fazosi funksiya ichida e’lon qilinishi mumkin emas, lekin ular boshqa nomlar 
fazosi ichida e’lon qilinishi mumkin. Ichma-ich joylashgan nomlar fazosidagi identifikatorga 
murojaat qilish uchun uni qamrab olgan barcha nomlar fazosi nomlar ketma-ket ravishda 
ko’rsatilishi kerak. Misol uchun, quyidagi ko‘rinishda nomlar fazosi e’lon qilingan bo‘lsin: 
namespace yuqori 

……………………..
namespace o’rta 

……………………… 
namespace ichki 

int Ichki_n; 
} } } 
Ichki_n o’zgaruvchisiga murojaat quyidagi ko‘rinishda bo‘ladi: 
Yuqori : : O’rta : : Ichki : :Ichki_n=0 ; 
Nomlar fazosida funksiyani e’lon qilishda nomlar fazosida faqat funksiya prototipini e’lon 
qilish va funksiya tanasini boshqa joyda e’lon qilish ma’qul variant hisoblanadi. Bu holatning 
ko‘rinishiga misol: 
namespace Nomlar_fazosi 

char c; 
int I; 
void Funksiya(char Bayroq); 

… 
void Nomlar_fazosi::Funksiya(char Bayroq) 


// funksiya tanasi 

Umuman olganda, o‘z nomiga ega bo‘lmagan nomlar fazosini e’lon qilish mumkin. Bu 
holda namespace kalit so‘zidan keyin hech nima yozilmaydi. Misol uchun 
namespace
{ char c_nomsiz; 
int i_nomsiz; } 
ko’rinishidagi nomlar fazosi elemenlariga murojaat hech bir prefiks ishlatmasdan amalga 
oshiriladi. Nomsiz nomlar fazosi faqat o‘zi e’lon qilingan fayl chegarasida amal qiladi. 
C++ tili nomlar fazosining psevdonimlarini aniqlash imkonini beradi. Bu yo‘l orqali 
nomlar fazosini boshqa nom bilan ishlatish mumkin bo‘ladi. Masalan, nomlar fazosi nomi uzun 
bo‘lganda unga qisqa nom bilan murojaat qilish:
namespace Juda_uzun_nomli_fazo 
{ f1oat: y; } 
Juda_uzun_nomli_fazo::y=o; 
namespace Qisqa_nom= Juda_uzun_nomli_fazo; 
Qisqa_nom::y=13.2;

Download 2,19 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   105




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