Mavzu Dasturlash tilida sinflar. Do’stona funksiyalar. Inkapsul-azkurs.org
statik va dinamik xotira taqsimoti. Statik holatda xotira taqsimoti, xotira kompilyatsiya vaqtida ajratiladi va dastur davomida bir xil bo'ladi. Xotiraning hajmida ham, xotiradagi joylashishda ham hech qanday o'zgarishlar bo'lmaydi. Ammo bu holatda xotirani dinamik ravishda taqsimlash, xotira ish vaqtida ajratiladi va biz ajratilgan xotira hajmini oshirishimiz/kamaytirishimiz yoki ishlatilmaganda xotirani butunlay bo'shatishimiz mumkin. Agar kerak bo'lsa, biz xotirani qayta taqsimlashimiz mumkin. Demak, dinamik xotira taqsimoti xotiradan unumli foydalanish uchun moslashuvchanlikni beradi.
statik va dinamik xotira taqsimoti. Statik holatda xotira taqsimoti, xotira kompilyatsiya vaqtida ajratiladi va dastur davomida bir xil bo'ladi. Xotiraning hajmida ham, xotiradagi joylashishda ham hech qanday o'zgarishlar bo'lmaydi. Ammo bu holatda xotirani dinamik ravishda taqsimlash, xotira ish vaqtida ajratiladi va biz ajratilgan xotira hajmini oshirishimiz/kamaytirishimiz yoki ishlatilmaganda xotirani butunlay bo'shatishimiz mumkin. Agar kerak bo'lsa, biz xotirani qayta taqsimlashimiz mumkin. Demak, dinamik xotira taqsimoti xotiradan unumli foydalanish uchun moslashuvchanlikni beradi.
Keling, o'zgaruvchilar turlarini, xotira turlarini va har xil o'zgaruvchilar va dasturlarga xotirani ajratish usullarini tushunib olamiz. Dasturda bizda har xil turdagi o'zgaruvchilar va xotira talablari bo'ladi. Global o'zgaruvchilar - bu dastur davomida har xil funktsiyalar va bloklar tomonidan ishlatiladigan o'zgaruvchilar. Shuning uchun ularga ajratilgan xotira maydoni dastur davomida bo'lishi kerak. Shunday qilib, ular doimiy xotira maydoni deb nomlanuvchi tizimning ichki xotiralarida ajratilgan xotirani oladi. Xuddi shunday, dastur va ularning bayonotlari tizim yoqilganda ham mavjud bo'lishi kerak. Shuning uchun ular doimiy saqlash joyini egallashi kerak.
Keling, o'zgaruvchilar turlarini, xotira turlarini va har xil o'zgaruvchilar va dasturlarga xotirani ajratish usullarini tushunib olamiz. Dasturda bizda har xil turdagi o'zgaruvchilar va xotira talablari bo'ladi. Global o'zgaruvchilar - bu dastur davomida har xil funktsiyalar va bloklar tomonidan ishlatiladigan o'zgaruvchilar. Shuning uchun ularga ajratilgan xotira maydoni dastur davomida bo'lishi kerak. Shunday qilib, ular doimiy xotira maydoni deb nomlanuvchi tizimning ichki xotiralarida ajratilgan xotirani oladi. Xuddi shunday, dastur va ularning bayonotlari tizim yoqilganda ham mavjud bo'lishi kerak. Shuning uchun ular doimiy saqlash joyini egallashi kerak.
Mahalliy o'zgaruvchilar - bu ma'lum bir blok yoki funktsiyalarda e'lon qilinishi kerak bo'lgan narsadir. Agar ularni doimiy saqlash joyida saqlasak, bu xotirani behuda sarflashiga olib keladi, chunki foydalanilmayotgan xotirani ajratib turamiz. Shuning uchun biz lokal o'zgaruvchilarni saqlash uchun stack xotiradan foydalanamiz va ularni stackdan olib tashlaymiz.