Тоshkеnт ахborot техnоlоgiyаlari univеrsiтетi


DASTUR BIRLIKLARINING SIFATLARI



Yüklə 418 Kb.
səhifə21/42
tarix17.10.2023
ölçüsü418 Kb.
#156478
1   ...   17   18   19   20   21   22   23   24   ...   42
С РАХМ

DASTUR BIRLIKLARINING SIFATLARI
O'zgaruvchilarning kattaligi, ismi va turidan tashqari yana bir necha boshqa
hossalari bor. Bulardan biri hotirada saqlanish tipidir. O'zgaruvchilar
hotirada ikki uslubda saqlanishi mumkin. Birinchisi avtomatik, ikkinchisi
statik yo'ldir. Avtomatik bo'lgan birlik u e'lon qilingan blok bajarilishi
boshlanganda tuziladi, va ushbu blok tugaganda buziladi, u hotirada egallagan
joy esa bo'shatiladi. Faqat o'zgaruvchilar avtomatik bolishi mumkin. Avtomatik
sifatini berish uchun o'zgaruvchi boshiga auto yoki register so'zlari
qo'yiladi. Aslida lokal o'zgaruvchilar oldiga hech narsa yozilmasa, ularga
auto sifati beriladi.
Dastur ijro etilganda o'zgaruvchilar markaziy prosessor registrlariga yuklanib
ishlov ko'radilar. Keyin esa yana hotiraga qaytariladilar. Agar register
sifatini qo'llasak, biz kompyuterga ushbu o'zgaruvchini ishlov ko'rish payti
davomida registrlarning birida saqlashni tavsiya etgan bo'lamiz. Bunda
hotiraga va hotiradan yuklashga vaqt ketmaydi. Albatta bu juda katta vaqt
yutug'i bermasligi mumkin, lekin agar sikl ichida ishlatilsa, yutuq sezilarli
darajada bo'lishi mumkin. Shuni etish kerakki, hozirgi kundagi kompilyatorlar
bunday ko'p ishlatiladigan o'zgaruvchilarni ajrata olishdi va o'zlari ular
bilan ishlashni optimizatsiya qilishadi. Shu sababli o'zgaruvchini register
deb e'lon qilish shart bo'lmay qoldi.
Hotirada boshqa tur saqlanish yo'li bu statik saqlanishdir. Statik sifatini
o'zgaruvchi va funksiyalar olishlari mumkin. Bunday birliklar dastur
boshlanish nuqtasida hotirada quriladilar va dastur tugashiga qadar saqlanib
turadilar. O'zgaruvchi va funksiyalarni statik qilib e'lon qilish uchun static
yoki extern (tashqi) ifodalari e'lon boshiga qo'yiladi. Statik o'zgaruvchilar
dastur boshida hotirada quriladilar va initsalizatsiya qilinadilar.
Fuksiyalarning ismi esa dastur boshidan bor bo'ladi. Lekin statik birliklar
dastur boshidan mavjud bo'lishi, ularni dasturning istalgan nuqtasida turib
qo'llasa bo'ladi degan gap emas. Hotirada saqlanish uslubi bilan qo'llanilish
sohasi tushunchalari farqli narsalardir. O'zgaruvchi mavjud bo'lishi mumkin,
biroq ijro ko'rayatgan blok ichida ko'rinmasligi mumkin.
Dasturda ikki hil statik birliklar bor. Birinchi hili bu tashqi
identefikatorlardir. Bular global sohada aniqlangan o'zgaruvchi va
funksiyalardir. Ikkinchi tur statik birliklar esa static ifodasi bilan e'lon
qilingan lokal o'zgaruvchilardir. Global o'zgaruvchi va funksiyalar oldida
extern deb yozilmasa ham ular extern sifatiga ega bo'ladilar. Global
o'zgaruvchilar ularning e'lonlarini funksiyalar tashqarisida yozish bilan
olinadi. Bunday o'zgaruvchi va funksiyalar o'zlaridan faylda keyin keluvchi
har qanday funksiya tomonidan qo'llanilishi mumkin.
Global o'zgaruvchilarni ehtiyotorlik bilan ishlatish kerak. Bunday
o'zgaruvchilarni harqanday funksiya o'zgartirish imkoniga ega. O'zgaruvchiga
aloqasi yo'q funksiya uning qiymatini bilib-bilmasdan o'zgartirsa, dastur
mantig'i buzilishi mumkin. Shu sababli global sohada iloji boricha kamroq
o'zgaruvchi aniqlanishi lozim. Faqat bir joyda ishlatilinadigan o'zgaruvchilar
o'sha blok ichida aniqlanishi kerak. Ularni global qilish noto'g'ridir.
Lokal o'zgaruvchilarni, yani funksiya ichida e'lon qilingan o'zgaruvchilarni
static so'zi bilan e'lon qilish mumkin. Bunda ular ikkinchi hil statik
birliklarni tashkil qilishgan bo'lishadi. Albatta ular faqat o'sha funksiya
ichida qo'llanishlari mumkin. Ammo funksiya bajarilib tugaganidan so'ng statik
o'zgaruvchilar o'z qiymatlarini saqlab qoladilar va keyingi funksiya
chaqirig'ida saqlanib qolingan qiymatni yana ishlatishlari yoki
o'zgartirishlari mumkin.
Statik o'zgaruvchilar e'lon paytida initsalizatsiya qilinadilar. Agar ularga
e'lon paytida ochiqchasiga qiymat berilmagan bo'lsa, ular nolga
tenglashtiriladi.
static double d = 0.7; // ochiqchasiga qiymat berish,
static int k; // qiymati nol bo'ladi.
Agar static yoki extern ifodalari global identefikatorlar bilan qo'llanilsa,
ushbu identefikatorlar mahsus ma'noga egadirlar. Biz u hollarni keyin ko'rib
o'tamiz.

Yüklə 418 Kb.

Dostları ilə paylaş:
1   ...   17   18   19   20   21   22   23   24   ...   42




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin