Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
227
sababidir. Biz 5.4 qismda ko‘ramiz, parametr qiymatlarini uzatish yo‘li bilan C ++
uchun qulay va samarali usulni beradi.
Qiymat tomonidan bajarilishining afzalligi tez qiymat uzatish va foydalanish
vaqti tejaladi.
Qiymat tomonidan bajarilish usulini asosiy kamchiligi qo‘shimcha saqlash yoki
rasmiy parametr uchun zarur bo‘lgan nusxalarni ishlatadi va foydalanuvchini
chaqiradi.
Bundan tashqari, haqiqiy parametrni saqlash hududga ko‘chiriladi mos
rasmiy parametr uchun. Saqlash va nusxa ko‘chirish operatsiyalari kabi ko‘plab
elementlar bilan bog‘liq qatorlar katta joy egallaydi.
5.3 Dastur parametri-orqali uzatish usullari
Ko‘plab mavjud tillarda, parametrlar bilan ishlash run-time stekdan
foydalanish natijasida sodir bo‘ladi. Bu run-time stak
run-time system tomonidan
kiritiladi va ta’minlab beriladi. Bu stak dastur bajarilishini boshqaradi. Bu asosan
qism dasturlarda jarayonni va parametrlardan foydalanishni nazorat qiladi. Quyida
barcha parametrlarda stekdan foydalanilishiga ishonch hosil qilamiz.
Parametrlar qiymati bo‘yicha undan foydalanishda
ularning qiymatlari stek
sohasiga ko‘chiriladi. Keyin bu soha mavjud parametrga xotira sifatida xizmat qiladi.
Parametrlarni ularni qaytargan natijasi bo‘yicha undan foydalanishda qiymat
bo‘yicha foydalanishga qaraganda teskari ish bajariladi. Qaytarilgan qiymat natijalari
stakda joylashadi va chaqirilgan qism dasturning boshidan oxirigacha chaqirilgan
dastur qismi takror foydalanish mumkin.
Natijani qiymat bo‘yicha uzatish (pass-by-value-result)da
parametrlari
qurilishiga ko‘ra qiymat bo‘yicha uzatish (pass-by-value) va natija bo‘yicha uzatish
(pass-by-result) parametrlaridan olinadi. Bu parametrning stakda joylashuvi
chaqirish paytida inisializatsiya qilinadi (ya’ni kiritiladi) va u chaqirilgan quyi dasturda
lokal o‘zgaruvchiga o‘xshab foydalaniladi.
Tavsif bo‘yicha uzatish (pass-by-reference) parametrlaridan
foydalanish eng
osoni hisoblanadi. Shunga qaramasdan mavjud parametr tipi, faqatgina uning
manzili stakda joylashadi. Literallar adresi esa stakda qo‘yiladi.
Bunday vaziyatda
kompilyatsiya qiluvchi (dasturchi) chaqirilgan qism dastur ishini nazorat qilib turish
uchun dastur tuzishi kerak. Kod va uning bajarilishidagi natijani xotiradagi manzili
stakda joylashadi. Dasturchi tomonidan chaqirilgan dasturning parametrlari (literal
yoki ifoda) o‘zgarishidan himoya qila olishi kerak.
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
228
Chaqirilgan qism dasturlar parametrlariga stak xotirasidan
kirish bilvosita
adres orqali amalga oshiriladi. Yuqoridagi rasmdan ko‘rinadiki parametrlar orqali ish
bajarishda run-time stakdan foydalaniladi. sub qism dasturda main dan sub(w, x, y,
z) qism dasturi orqali chaqiriladi. Bu yerda w qiymat bo‘yicha uzatiladi, x natija
bo‘yicha uzatiladi, y natija qiymati bo‘yicha uzatiladi, z tavsif bo‘yicha bilan uzatiladi.