1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot



Download 4,47 Mb.
bet26/89
Sana15.04.2022
Hajmi4,47 Mb.
#553102
1   ...   22   23   24   25   26   27   28   29   ...   89
Bog'liq
C kitob TAYYOR

24 – DARS. HOTIRA SINFLARI.

Ob'ektlarni lokallashtirish.


Blok deb funktsiya tanasi eki figurali qavslar ichiga olingan ta'riflar va operatorlar ketma ketlishgiga aytiladi.
Avtomatik hotira ob'ektlari faqat o’zi aniqlangan blok ichida mavjud bo’ladi. Blokdan chiqishda ob'ektlar uchun ajratilgan hotira qismi bo’shatiladi, ya'ni ob'ektlar yuqoladi. Shunday qilib avtomatik hotira har doim ichki hotiradir, ya'ni bu hotiraga o’zi aniqlangan blokda murojaat qilish mumkin. Avtomatik hotira ob'ektlari auto yoki register so’zlari yordamida ta'riflanadi. Agar mahsus ko’rsatilmagan bo’lsa o’zgaruvchi har doim avtomatik hotira turiga tegiishli deb hisoblanadi. Statik hotira ob'ektlari blokdan chiqilgandan so’ng ham mavjud bo’lib qolaveradi. Statik hotira ob'ektlari statik hizmatchi so’zi yordamida ta'riflanadi.
Misol:
#Include
void autofunc(void)
{ int K=1;
Cout<<(“\K=%d”,K);
K++;
Return;
}
void main()
{
int i;
for (i=0;i<5;i++)
autofunc();
}
Bu dastur bajarilishi natijasi:
K=1 K=1 K=1 K=1 K=1
Shu dasturning ikkinchi ko’rinishida K o’zgaruvchi statik o’zgaruvchi sifatida ta'riflanadi:
#Include
void autofunc(void)
{ static int K=1;
Cout<<(“\K=%d”,K);
K++;
Return;
}
void main()
{
int i;
for (i=0;i<5;i++)
autofunc();
}
Bu dastur bajarilishi natijasi:
K=1 K=2 K=3 K=4 K=5
Bu misolda K o’zgaruvchi faqat bir marta initsializatsiya qilinadi va uning qiymati navbatdagi murojaatgacha saqlanadi.
25 – DARS. GLOBAL OB'EKTLAR.
Global ob'ektlar deb dasturda hamma bloklar uchun umumiy bo’lgan ob'ektlarga aytiladi. Har bir blok ichida global ob'ektga murojjat qilish mumkindir.
Misol:
#include
int N=5;
void func(void)
{
Cout<<(“\tN=%d”,N);
N--;
Return;
}
void main()
{
int i;
for (i=0;i<5;i++)
{func();
N+=2;
}
}
Dastur bajarilishi natijasi:
N=5 N=6 N=7 N=8 N=9
N o’zgaruvchisi main() va func() funktsiyalari tashqarisida aniqlangan va bu funktsiyalarga nisbatan globaldir. Har bir func() chaqirlganda uning qiymati 1 ga kamayadi, asosiy dasturda bo’lsa 2 taga oshadi. Natijada N qiymati 1 ga oshib boradi.
Endi dasturni o’zgartiramiz:
#include
int N=5;
void func(void)
{
Cout<<(“\tN=%d”,N);
N--;
Return;
}
void main()
{
int N;
for (N=0;N<5;N++)
{func();
N+=2;
}
}
Dastur bajarilishi natijasi:
N=5 N=4 N=3 N=2 N=1
N uzgaruvchisi main() funktsiyasida avtomatik o’zgaruvchi sifatida ta'riflangan va u global N o’zgaruvchiga ta'sir qilmaydi. Ya'ni global N o’zgaruvchi main() funktsisida ko’rinmaydi.
Tashqi ob'ektlar.
Dastur bir necha matnli fayllarda joylashgan bo’lishi mumkin. Dastur o’z navbatida funktsiyalardan iboratdir. Hamma funktsiyalar tashqi hisoblanadi. Hatto har hil fayllarda joylashgan funktsiyalar ham har hil nomlarga ega bo’lishi lozimdir. Funktsiyalardan tashqari dasturlarda tashqi ob'ektlar o’zgaruvchilar, ko’rsatkichlar, massivlar ishlatilishi mumkin.
Tashqi ob'ektlar hamma funktsiyalarda ham ko’rinmasligi mumkin. Agar ob'ekt fayl boshida ta'riflangan bo’lsa u shu fayldagi hamma funktsiyalarda ko’rinadi.
Agar tashqi ob'ektga shu ob'ekt ta'riflangan blokdan yuqorida eki boshqa faylda joylashgan blokdan murojjat qilinishi kerak bo’lsa, bu ob'ekt extern hizmatchi so’zi yordamida ta'riflanshi lozimdir. Shuni aytish lozimki extern hizmatchi so’zi yordamida ta'riflanganda initsializatsiya qlish yo chegaralarni ko’atish mumkin emas.
Extern double summa[];
Extern char D_phil [];
Extern long M;
Misol uchun VAL va SP o’zgaruvchilari bitta faylda, bu o’zgaruvchilarga murojaat qiluvchi PUSH, POP i CLEAR funktsiyalari boshqa faylda ta'riflangan bo’lsin. Bu holda bu fayllar orasidagi bog’liklikni ta'minlash uchun quyidagi ta'riflar lozimdir:
1 faylda:
int sp = 0; /* stack pointer */
double val[maxval]; /* value stack */
2 faylda:
extern int sp;
extern double val[];
double push(f) ...
double pop() ...
clear() ...



Download 4,47 Mb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   89




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