Маъруза 26. Препроцессор директивалари. Идентификаторларнинг амал доираси. Макросларни аниқлаш ва жойлаштириш


Макросларда ишлатиладиган амаллар



Download 24,1 Kb.
bet3/3
Sana21.02.2022
Hajmi24,1 Kb.
#50430
1   2   3
Bog'liq
7-маъруза

26.3. Макросларда ишлатиладиган амаллар
Макрослар ишлатилиши мумкин бўлган иккита амал мавжуд: ‘#’- сатрни жойлаштириш ва ” ##” - сатрни улаш амаллари.
Агар макрос параметри олдида ‘#’- сатрни жойлаштириш амали қўйилган бўлса, макрос аниқланишини матнга қўйиш пайтида шу ўринга мос аргументнинг (ўзгарувчининг) номи қўйилади. Буни қуйи-даги мисолда кўриш мумкин:
#include
#define UZG_NOMI(uzg) cout<<#uzg<<'='<int main()
{
int x=10;
UZG_NOMI(x);
return 0;
}
Программа ишлаши натижасида экранда
x=10
сатри пайдо бўлади.
Сатр улаш амали иккита сатрни биттага бирлаштириш учун хизмат қилади. Сатрларни бирлаштиришдан олдин уларни ажратиб турган пробеллар ўчирилади. Агар ҳосил бўлган сатр номидаги макрос мавжуд бўлса, препроцессор шу макрос танасини чақирув бўлган жойга жойлаштиради.
Мисол учун,
#include
#define MACRO_BIR cout<<"MACRO_1";
#define MACRO_IKKI cout<<"MACRO_2";
#define MACRO_BIRLASHMA(n) MACRO_##n
int main(int argc, char* argv[])
{
int x=10;
MACRO_BIRLASHMA(BIR);
cin>>x;
return 0;
}
программмаси препроцессор томонидан қайта ишлангандан кейин унинг оралиқ матни куйидаги кўринишда бўлади:
int main(int argc, char* argv[])
{
int x=10;
cout<<"MACRO_1";
cin>>x;
return 0;
}
Сатрларни улаш амалидан янги ўзгарувчиларни ҳосил қилиш учун фойдаланиш мумкин.
#define UZG_ELONI(i) int var ## i
...
UZG_ELONI(1);
...
Юқоридаги мисолда макрос ўз аниқланиши билан алмаштириш натижасида “UZG_ELONI(1);” сатри ўрнида
int var1;
кўрсатмаси пайдо бўлади.

Адабиётлар рўйхати:

  1. D.S. Malik. C++ Programming: From problem analysis to program design. Course Technology, 2011.

  2. Ivor Horton. Beginning Visual C++ 2005. Wiley Publishing, 2005.

  3. Б. Страуструп. Язык программирования С++. Специальное издание.-М.: ООО «Бином-Пресс», 2006.

  4. Мадрахимов Ш.Ф., Гайназаров С.М. C++ тилида Дастурлаш асослари// Тошкент, Ўзбекистон Миллий Университети, 2009.

Download 24,1 Kb.

Do'stlaringiz bilan baham:
1   2   3




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