Abstrakt turlarni tasvirlash — mavjud turlar asosida yangi, mazmunli nomli turlar yaratish. C’da bu asosan typedef va enum orqali amalga oshiriladi. Bu kodni o’qiladigan, tushunarli va xatolarga chidamli qiladi. Abstraksiya — murakkablikni yashirib, mazmunni ochishning usulidir.
Abstrakt tur — dasturchi tomonidan yaratilgan, mazmunga ega ma’lumot turi. C’da
typedefmavjud turga yangi nom beradi,enumesa nomlangan doimiylar to’plamini yaratadi.
typedef bilan yangi nom
typedef mavjud turga yangi, mazmunli nom beradi. Bu kodni tushunarli qiladi:
#include <stdio.h>
typedef unsigned int Yosh;
typedef char Belgi;
int main(void) {
Yosh foydalanuvchiYoshi = 26;
Belgi daraja = 'A';
printf("Yosh: %u, daraja: %c\n", foydalanuvchiYoshi, daraja);
return 0;
}
Yosh: 26, daraja: A
typedef unsigned int Yosh — unsigned int ga Yosh degan yangi nom berdi. Endi kod mazmunliroq: Yosh degan tur yosh saqlashini darhol bildiradi.
enum — nomlangan doimiylar
enum bir-biriga bog’liq nomlangan doimiylar to’plamini yaratadi. Bu sonlar o’rniga mazmunli nomlar ishlatishga imkon beradi:
#include <stdio.h>
enum Kun { DUSHANBA, SESHANBA, CHORSHANBA, PAYSHANBA };
int main(void) {
enum Kun bugun = CHORSHANBA;
printf("Bugungi kun raqami: %d\n", bugun);
return 0;
}
Bugungi kun raqami: 2
enum doimiylari avtomatik ravishda 0 dan raqamlanadi (DUSHANBA = 0, SESHANBA = 1, CHORSHANBA = 2). Kodda 2 o’rniga CHORSHANBA yozish ancha tushunarli.
enum ning afzalligi
enum va oddiy sonlarni solishtiramiz:
| Yondashuv | Kod | O’qilishi |
|---|---|---|
| Oddiy son | if (kun == 2) |
tushunarsiz |
enum |
if (kun == CHORSHANBA) |
ravshan |
enum kodni o’z-o’zini hujjatlaydigan qiladi va xatolarni kamaytiradi.
typedef va enum birga
Amaliyotda typedef va enum ko’pincha birga ishlatiladi:
#include <stdio.h>
typedef enum { PASSIV, FAOL } Holat;
int main(void) {
Holat foydalanuvchi = FAOL;
if (foydalanuvchi == FAOL) {
printf("Foydalanuvchi faol\n");
}
return 0;
}
Foydalanuvchi faol
typedef enum { ... } Holat — bir vaqtning o’zida ham nomlangan doimiylarni, ham qulay tur nomini yaratdi. Bu C’da holatlarni ifodalashning nafis usuli.
Xulosa
Bu bo’limda typedef bilan yangi tur nomi, enum bilan nomlangan doimiylar, ularning afzalliklari va birga ishlatilishini ko’rib chiqdik. Abstrakt turlar kodni o’qiladigan va ishonchli qiladi. Keyingi darsda birlashmalar (union) ga o’tamiz.