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


Almashtiruvchi qatorda preprotsessor amallari



Yüklə 0,69 Mb.
səhifə63/121
tarix02.01.2022
ölçüsü0,69 Mb.
#37187
1   ...   59   60   61   62   63   64   65   66   ...   121
aaaaKitob majmuasiiii

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.



Yüklə 0,69 Mb.

Dostları ilə paylaş:
1   ...   59   60   61   62   63   64   65   66   ...   121




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin