7. Чизиқли жараёнларни дастурлаш


Download 478.36 Kb.
bet14/32
Sana28.12.2022
Hajmi478.36 Kb.
#1016431
1   ...   10   11   12   13   14   15   16   17   ...   32
Bog'liq
С да дастурлаш 1 кисм 1 семестр

Макро чақириқ

Макрожойлаш натижаси

Zero(+,x,y)

(bac)

One(+,x,y)

(x + y)

Two(+,x,y)

(x+y)

Биринчи ҳолда bac ягона идентификатор деб қаралиб макро алмаштириш амалга оширилмайди. Иккинчи ҳолда макрос аргументлари бўшлик белгилари билан ажратилган бўлиб, бу белгилар натижада ҳам сақланиб қолади. Учинчи ҳолда макрос учун “##” амали қўлланилгани учун натижада бўшлик белгиларсиз параметнлар уланади.
6.4. Шарт директивалар ва улардан фойдаланиш
Шартли директива қуйидаги кўринишга эгадир:
#if бутун сонли ифода
текст_1
#else
текст_2
#endif
#else текст_2 қисми ишлатилиши шарт эмас. Директива бажарилганда #if дан сўнг ёзилган бутун сонли ифода қиймати ҳисобланади. Агар бу қиймат 0 дан катта бўлса, текст_1 компиляция қилинаётган матнга қўшилади, аксинча текст_2 қўшилади. Агар #else директиваси ва текст_2 мавжуд бўлмаса бу директива ўтказиб юборилади.
#ifdef идентификатор директивасида #define директиваси ёрдамида идентификатор аниқланганлиги текширилади. Агар идентификатор аниқланган бўлса текст_1 бажарилади. #ifndef идентификатор директивасида аксинча шарт рост ҳисобланганда текст_2 бажарилади. Дастурга улаш мўлжалланган файлларнинг ҳар бирига битта файл уланиш уланиш мўлжалланган бўлса, бу файл бир неча марта дастурга уланиб қолади. Бу қайта уланишни олдини олиш учун стандарт файллар юқорида кўрилган директивалар ёрдамида ҳимоя қилингандир. Бу ҳимоя усули қуйидагича бўлиши мумкин.
/* filename номли файл */
/* filename аниқланганлигини текшириш */
# ifdef FILE_NAME
// уланаётган файл матни таърифи
#define FILE_NAME
#endif
Тармоқланувчи шартли директивалар яратиш учун қуйидаги директива киритилган:
#elif бутун_сонли_ифода
Бу директива ишлатиладиган текст структураси:
#if шарт
текст
#elif 1_ифода
1_текст
#else
текст
#endif
Препроцессор аввал #if дирктивасидаги шартни текширилади. Агар шарт 0 га тенг бўлса, 1_ифода ҳисобланади агар у ҳам 0 бўлса, 2_ифодани ҳисоблайди ва ҳоказо. Агар ҳамма ифодалар 0 бўлса, else учун кўрсатилган текст уланади. Агар бирор ифода 0 дан катта бўлса, шу директивада кўрсатилган текст уланади.

Download 478.36 Kb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   ...   32




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