Aniq fanlar
Download 0.61 Mb.
|
O
- Bu sahifa navigatsiya:
- Xotirani tekislash.
- include struct Foo { char c; int i; char s; }; int main() {
sizeof (struct goods)
sizeof (tea) sizeof coat Murakkab turlar ya’ni massivlar va strukturali turlar uchun xotiraga talab ularning ta’rifiga bog’liqdir. Masalan, double array[10] ta’rif xotiradan 10*sizeof bayt joy ajratilishiga olib keladi. struct mixture { int ii; long ll; char cc[8]; }; Bu ta’rif har bir struct mixture turidagi ob’ekt xotirada sizeof(int)+sizeof(long)+8*sizeof(char) bayt joy egallashini ko’rsatadi. Obekt aniq 31 hajmini quyidagi amal hisoblaydi: sizeof(struct mixture) Xotirani tekislash. Strukturali tur kiritilishi bu tur uchun xotiradan joy ajratilishiga olib kelmaydi. Har bir konkret struktura (ob’ekt) ta’riflanganda, shu ob’ekt uchun elementlar turlariga qarab xotiradan joy ajratiladi. Xotiradan joy zich ajratilganda struktura uchun ajratilgan joy hajmi har bir element uchun zarur bo’lgan xotira hajmlari yig’indisiga teng bo’ladi. Shu bilan birga xotiradan joy zich ajratilmasligi ham mumkin, ya’ni elementlar orasida bo’sh joylar ham qolishi mumkin. Bu bo’sh joy keyingi elementni xotira qismlarining qabul qilingan chegaralari bo’yicha tekislash uchun qoldiriladi. Misol uchun butun turdagi elementlar juft adreslardan boshlansa, bu elementlarga murojaat tezroq amalga oshiriladi. #include struct Foo { char c; int i; char s; }; int main() { printf("Foo hajmi = %d",sizeof(Foo)); return 0; } Natija: Foo hajmi = 12 32 Konkret strukturalarni joylashuviga ba’zi kompilyatorlarda #pragma preprosessor direktivasi yordamida ta’sir o’tkazish mumkin. Bu direktiva quyidagi shaklda: pragma pack(n) Bu yerda n ning qiymati 1, 2 yoki 4 ga teng bo’lishi mumkin. pack(1) – elementlarni bayt chegaralari bo’yicha tekislash; pack(2) – elementlarni so’zlar chegaralari bo’yicha tekislash; pack(4) – elementlarni ikkilangan so’zlar chegaralari bo’yicha teksilash. Masalan: Download 0.61 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling