1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot


Almashtiruvchi qatorda preprotsessor amallari



Download 4,47 Mb.
bet52/89
Sana15.04.2022
Hajmi4,47 Mb.
#553102
1   ...   48   49   50   51   52   53   54   55   ...   89
Bog'liq
C kitob TAYYOR

Almashtiruvchi qatorda preprotsessor amallari.
Almashtiruvchi qatorni tashkil qiluvchi leksemalar ketma ketligida ‘#’ va ‘##’ amallarini qo’llash mumkin. Birinchi amal parametr oldiga qo’yilib, shu parametrni almashtiruvchi qator qavslarga olinishi kerakligini ko’rsatadi. Misol uchun:
#define print(A) print(#A”=%f”,A)
makro ta'rif berilgan bo’lsin. U holda makrosga print(a+b) murojaat quyidagi makro kengaytmani hosil kiladi: print(“a+b””%f”,a+b).
Ikkinchi ‘##’ amal leksemalar orasida qullanilib, leksemalarni ulashga imkon beradi.
Quyidagi makrota'rif berilgan bulsin:
#define zero(a,b,c) (bac)
#define one(a,b,c) (b a c)
#define two(a,b,c) (b##a##c)
Makrochakirik: Makrojoylash natijasi:
Zero(+,x,y) (bac)
One(+, x, y) (x + y)
Two(+,x,y) (x+y)
Birinchi holda bas yagona identifikator deb qaralib makro almashtirish amalga oshirilmaydi. Ikkinchi holda makros argumentlari bo’shlik belgilari Bilan ajratilgan bo’lib bu belgilar natijada ham saqlanib koladi. Uchinchi holda makros uchun ‘##’ amali qo’llanilgani uchun natijada bo’shlik belgilarsiz parametrlar ulanadi.


Makroslarning funktsiyadan farki.
Funktsiya dasturda bitta nushada bo’lsa, makros hosil qiluvchi matnlar makros har gal chaqirilganda dasturga joylashtiriladi. Funktsiya parametrlar spetsifikatsiyasida ko’rsatilgan tiplar uchun ishlatiladi va konkret tipdagi qiymat qaytaradi. Makros har qanday tipdagi parametrlar bilan ishlaydi. Hosil qilinayotgan qiymat tipi faqat parametrlar tiplari va ifodalarga boglik. Makrojoylashlardan tug’ri foydalanish uchun almashtiriluvchi satrni qavsga olish foydalidir. Funktsiyaning haqiqiy parametrlari bu ifodalardir, makros argumentlari bo’lsa vergul bilan ajratilgan leksemalardir. Argumentlarga makro-kengaytirishlar qo’llanmaydi.


Oldindan kiritilgan makronomlar.
..LINE.. – o’nlik konstanta o’qilayotgan satr nomeri . Birinchi satr nomeri 1 ga teng.
..FINE.. – fayl nomi . simvollar qatori. Preprotsessor har gal boshqa fayl nomi ko’rsatilgan # include direktivasini uchratganda nom o’zgaradi. # include direktivasi bajarilib bo’lgandan so’ng nom qayta tiklanadi.
..DATE.. – “Oy , sana, yil” formatidagi simvollar satri. Fayl bilan ishlash boshlangan sanani ko’rsatadi.
..TIME.. – “Soatlar : minutlar : sekundlar ” formatidagi simvollar satri. Preprotsessor tomonidan faylni o’qish boshlangan vaqtni ko’rsatada.
..STDC.. – Agar kompilyator ANSI – standart bo’yicha ishlayotgan bo’lsa qiymati 1 ga teng konstanta. Aks holda konstanta qiymati aniqlanmagan.
Borland C++ kompilyatori preprotsessorida qo’shimcha konstantalar kiritilgan:
..BCOPT.. – agar kompilyatsiyada optimizatsiya ishlatilsa qiymati 1 ga teng konstanta.
..BCPLUSPLUS.. – kompilyator versiyasiga mos keluvchi son qiymati.
..CPECL.. – funktsiyalarga parametrlar uzatish tartibini belgilaydi. C ++ da qabul qilingan tartib 1 raqamga tug’ri keladi.
.. CONSOLE.. – 32 razryadli kompilyator uchun aniqlangan va konsal programmalar uchun 1 ga teng.
..DLL.. – WINDOWS DLL rejimida ishlashga mos keladi.
..MSDOS.. -- Borland C++ 16 razryadli kompilyatorlari uchun 1 ga teng va 32 razryadli kompilyator uchun 0 ga teng.
..MT.. – Makros faqat 32 razryadli kompilyatorlar uchun mo’ljallangan.
..OVERLAY.. – overleyi rejimida 1 ga teng.
..PASCAL.. – CDECL ga qarama-qarshi.
..TCPLUSPLUS.. – kompilyator versiyasiga mos keluvchi son qiymati. C++ kompilyatorlari uchun mo’ljallangan.
..TLS.. -- 32 razryadli kompilyatorlar uchun rost deb belgilangan.
..TURBOC.. -- Borland C++ 4.0 kompilyatori uchun 0X0 400 kiymatga teng(Borland C++ 4.5 uchun 0X0 460 va hakazo).
.. WINDOWS.. – WINDOWS uchun kod generatsiyasi .
.. WIN32.. – 32 razryadli kompilyator uchun aniqlangan va konsol dasturlar uchun 1 ga teng.



Download 4,47 Mb.

Do'stlaringiz bilan baham:
1   ...   48   49   50   51   52   53   54   55   ...   89




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish