Darsliklar C Abstrakt turlarni tasvirlash

C C Abstrakt turlarni tasvirlash

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 turdasturchi tomonidan yaratilgan, mazmunga ega ma’lumot turi. C’da typedef mavjud turga yangi nom beradi, enum esa 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 Yoshunsigned 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.