Ы збекистон Республикаси Олий ва ырта махсус таълим вазирлиги


Шартли компиляция. +аторни белгилашни бош=ариш. Хатолар билан ишлаш директивалари


Download 407 Kb.
bet13/15
Sana18.02.2023
Hajmi407 Kb.
#1213815
1   ...   7   8   9   10   11   12   13   14   15
Bog'liq
SI

Шартли компиляция. +аторни белгилашни бош=ариш. Хатолар билан ишлаш директивалари.


Си да шартли компиляциялаш =уйидаги директивалар ёрдамида амалга оширилади.


#if бутун_ызгармасли_ифода
#ifdef идентификатор
#ifndef идентификатор
#else
#endif
#elif
Биринчи учта директива шартни текшириш, кейинги иккитаси эса шартни щаракат диапазонини ани=лашни билдиради.
Шартли компиляциялаш директиваларини =ыллаш умумий тузилиши =уйидагича:
#if...
1 – матн
#else
2 – матн
#endif
Шартли компиляциялаш таш=и =урилмалар учун программалар ёзишда, созланаётган чоп =илишни ажратиш ва шунга ыхшаш щолатларда ишлатилади.
+уйидаги директива:
#ifdef идентификатор
ёрдамида #define директиваси ёрдамида щозирги ва=тда #ifdef директивасидан кейин жойлаштирилган идентификатор ани=ланган былса, у щолда матн_1 – компилятор томонидан фойдаланилади.
+уйидагича:
#ifndef идентификатор
директиваси ёрдамида эса тескари шарт – идентификаторнинг ани=ланмаганлиги яъни идентификатор #define функцияси фойдаланилмаганлиги ёки ани=лаш #undef буйру\и билан бекор =илинганлиги текширилади.
Программани созлашда назорат =илувчи ахборот воситаларини ёки чи=ариб ташлаш учун шартли компиляцияни =ышиш =улай.
Масалан:
#define DEBUG

#ifdef DEBUG
printf (“Созлашда чоп =илиш”);
#endif
Мулти тармо=ланишларни амалга ошириш учун:
#elif бутун_ызгармасли_ифода
директиваси киритилган.
Бу ерда бутун_ызгармасли_ифодасига =ыйиладиган талаблар #if директивасиlа келтирилганига ыхшаш былади.
Бу директивани =ыллаш структураси билан берилган матн =уйидагича тус олади:
#if шарт
if_учун_матн
#elif ифода_1
Матн_1
#elif ифода_2
Матн_2
#else
Матн_3
Else_учун_main
# endif
Шундай =илиб матннинг фа=ат шартли директивалар томонидан ажратилган =исми ишлатилади.
+аторларни номерлаш учун:
# line ызгармас
директиваси компиляторга кейинги =атор ынли бутун ызгармас билан ани=ланадиган номерга эга былишини кырсатади. Директива бир ва=тнинг ызида нафа=ат =атор номерини, балки файл исмини щам ызгартириш имконини беради. Унинг умумий шакли:
# line ызгармас «файл исми»
масалан ААА.С программа матни;
# define N 3
voidmain ()
{
# line 23 “files.c”
double z(3*n);
}
процессор олди ишловидан кейин “aaa.i” исмли файлда =уйидаги =атор хосил былади;
aaa.c 1;
aaa.c 2;
aaa.c 3;{
aaa.c 4;
file.c 23; double z(3*3)
file.c 24;}

+уйидаги директива:


# error лексем кетма-кетлиги
хатоликларни олдини олиш хабарларини етказади.
Масалан:
# define aa 5
# if (aa ! =5)
# error aa 5 га тенг былиши керак!
интеграллашган мущитда (масалан TURBO C да) ахборот =уйидаги кыринишга эга былади:
Fatal <файл исми><=атор номери>;
Error directiv: AA 5 га тенг былиши керак!



Download 407 Kb.

Do'stlaringiz bilan baham:
1   ...   7   8   9   10   11   12   13   14   15




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