Препроцессор директивалари


'##' амали фақат , лексемалар ва алмаштирилувчи сатрлар орасида ишлатиш мумкин, лексемаларни бирлаштиришда ишлатиш мумкин



Download 1,55 Mb.
bet19/22
Sana26.03.2022
Hajmi1,55 Mb.
#512181
1   ...   14   15   16   17   18   19   20   21   22
Bog'liq
PREPROZESSO

'##' амали фақат , лексемалар ва алмаштирилувчи сатрлар орасида ишлатиш мумкин, лексемаларни бирлаштиришда ишлатиш мумкин .

  • '##' амали фақат , лексемалар ва алмаштирилувчи сатрлар орасида ишлатиш мумкин, лексемаларни бирлаштиришда ишлатиш мумкин .
  • '##' бу амалнинг ролини тушунтириш учун мисол келтирамиз, учта макро алмаштириш бир хил параметр ва бир хил аргументлар билан бериган.
  • #define zero (a, b, с, d) a (bсd)
  • #define one (a, b, c, d) a (b с d)
  • #define two (a, b, c, d) a (b##c##d)
  • zero() бажарилганда "bed" кетма кетлик худди идентификатор каби тушунилади. b, с, d параметрларни алмаштириш бажарилмади. опе() макрос бажарилганда сатрни жойлаш амалга оширилди ва натижа шунга мос бўлди. two() макрос бажарилган сатрларни бирлаштириш амалга оширилди ва пробел ишлатилмади ва бунда '##' амалидан фойдаланилди

Ёрдамчи директивалар

  • Сатрни ифодаловчи препроцессор белгиси . Сатрни нумерлаш учун қуйидаги директивадан фойдаланилади
  • #linе константа
  • Компиляторга кейинги сатр номерини кўрсатиб туради ўнли бутун сондан иборат бўлиши керак. Директива нафақат сатр номери балки файл номини хам ўзгартириши мумкин :
  • #linе константа "файл_номи"
  • Бу препроцнссорни жуда кам ишлатилади агарда Си тилидаги дастур коди бошқа препроцессор генерация қилинган холдагина учратиш мумкин.

#line директиваси маъноси шунда кўринадики, қачон препроцессор қаралаётган матнни формаллаштириб компиляцияга юбораётганда хар бир сатр қуйидагича кўринишга эга бўлади:

  • #line директиваси маъноси шунда кўринадики, қачон препроцессор қаралаётган матнни формаллаштириб компиляцияга юбораётганда хар бир сатр қуйидагича кўринишга эга бўлади:
  • Файла_номи сатр_номери Си_тилидаги_матн
  • "www.c" номли файлни препроцессор қайта ишлаш учун ўзлаштирди натижада:
  • #define N 3 /* константани аниқлаш */
  • void main ( )
  • {
  • #line 23 "file.с" double z[3*N];
  • )
  • Препроцессора қайта ишлагандан кейин "www.i" файл қуйидаги кўринишга келади:
  • Обратите внимание на отсутствие в результирующем тексте препроцессорных директив и комментария. Соответствующие строки пусты, но включены в результирующий текст. /Для них выделены порядковые номера (1 и 4). Следующая строка за ди­рективой #Нпе обозначена в соответствии со значением кон­станты (23) и указанным именем файла "file.c".

Download 1,55 Mb.

Do'stlaringiz bilan baham:
1   ...   14   15   16   17   18   19   20   21   22




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