• 48 - DARS.DEFINED OPERATSIYASI.
  • - DARS. SHARTLI VA YORDAMCHI DIREKTIVALAR




    Download 313,45 Kb.
    bet50/89
    Sana16.11.2023
    Hajmi313,45 Kb.
    #100010
    1   ...   46   47   48   49   50   51   52   53   ...   89
    Bog'liq
    @AKT Official C haqida o\'zbekcha darslar majmui

    47 - DARS. SHARTLI VA YORDAMCHI DIREKTIVALAR.
    Shartli direktiva qo’yidagi ko’rinishga egadir:
    #if butun sonli ifoda.
    tekst_1
    #else
    tekst_2
    #endif
    #else tekst_2 qismi ishlatilishi shart emas.
    Direktiva bajarilganda #if dan so’ng yozilgan butun sonli ifoda qiymati hisoblanadi. Agar bu qiymat 0 dan katta bo’lsa tekst_1 kompilyatsiya qilinayotgan matnga qo’shiladi, aksincha tekst_2 qo’shiladi. Agar #else direktivasi va tekst_2 mavjud bo’lmasa bu direktiva o’tkazib yuboriladi.
    #ifdef identifikator
    direktivasida #define direktivasi yordamida identifikator aniqlanganligi tekshiriladi. Agar identifikator aniqlangan bo’lsa tekst_1 bajariladi.
    #ifndef identifikator
    direktivasida aksincha shart rost hisoblanadi agar identifikator aniqlanmagan bo’lsa. Dasturga ulash muljallangan fayllarning har biriga bitta fayl ulanish mo’ljallangan bo’lsa, bu fayl bir necha marta dasturga ulanib koladi. Bu qayta ulanishni oldini olish uchun standart fayllar yuqorida ko’rilgan direktivalar yordamida himoya qilingandir. Bu himoya usuli qo’yidagicha bo’lishi mumkin.
    /* filename Nomli fayl */
    /* FILENAME aniklanganligini tekshirish */
    # indef FILE_NAME
    … /* Ulanaetgan fayl teksti
    /* Ta'rif
    #define FILE_NAME
    #endif
    Tarmoqlanuvchi shartli direktivalar yaratish uchun qo’yidagi direktiva kiritilgan:
    #elif butun_sonli_ifoda Bu direktiva ishlatilgan tekst strukturasi:
    #if shart
    tekst
    #elif 1_ifoda
    1_tekst
    #elif 2_ifoda
    2_tekst

    #else
    tekst
    #endif
    Preprotsesssor avval #if direktivasidagi shartni tekshiradi. Agar shart 0 ga teng bulsa 1_ifoda hisoblanadi agar u ham 0 bulsa 2_ifodani hisoblaydi va hokazo. Agar hamma ifodalar 0 bulsa else uchun kursatilgan tekst ulanadi. Agar biror ifoda 0 dan katta bulsa shu direktivada kursatilgan tekst ulanadi.


    48 - DARS.DEFINED OPERATSIYASI.

    Tekst shartli qayta ishlanganda unar preprotsessor amali Defined operand amalidan foydalanish mumkin. If defined ifodasi #ifdef operand ifodasiga ekvivalentdir. Bu ko’rinishda defined avfzalligi bilinmaydi. Misol uchun biror tekst kompilyatorga Y identifikatori aniqlangan, N bo’lsa aniqlanmagan holda uzatish lozim bo’lsin. U holda preprotsessor direktivasi qo’yidagicha yoziladi:


    #if defined Y&&!defined N
    tekst
    #endif
    Bu direktivani qo’yidagicha ham yozish mumkin.
    #ifdef Y
    #ifndef N
    tekst
    #endif
    #endif
    Yordamchi direktivalar.
    Satrlarni nomerlash uchun quyidagi direktivadan foydalanish mumkin:
    #line konstanta
    Direktiva fakat satr nomeri emas, fayl nomini ham uzgartirishi mumkin:
    #line konstanta “fayl nomi”
    Odatda bu direktiva kam ishlatiladi.
    Quyidagi direktiva leksemalar ketma ketligi orqali kursatilgan shaklda diagnostik ma'lumotlar berilishiga olib keladi.
    # error leksemalar ketma ketligi.
    Misol uchun NAME preprotsessor o’zgaruvchisi aniqlangan bo’lsin:
    #define NAME 5
    Dasturda bu o’zgaruvchi qiymatini teshirib, 5 ga teng bo’lmagan holda ma'lumot berish uchun qo’yidagi direktivadan foydalaniladi:
    #if (NAME!=5)
    #error NAME 5 ga teng bo’lishi kerak
    Hech qanday hizmat bajarmaydigan direktiva: #

    Download 313,45 Kb.
    1   ...   46   47   48   49   50   51   52   53   ...   89




    Download 313,45 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    - DARS. SHARTLI VA YORDAMCHI DIREKTIVALAR

    Download 313,45 Kb.