Ы збекистон Республикаси Олий ва ырта махсус таълим вазирлиги
Шартли компиляция. +аторни белгилашни бош=ариш. Хатолар билан ишлаш директивалари
Download 407 Kb.
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling