freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c程序設(shè)計預(yù)處理命令-資料下載頁

2024-10-16 15:50本頁面
  

【正文】 試后一一將 printf語句刪去。的確,這是可以的。但是,當(dāng)調(diào)試時加的 printf語句比較多時,修改的工作量是很大的。用條件編譯,則不必一一刪改 printf語句,只需刪除前面的一條“ define DEBUG”命令即可,這時所有的用 DEBUG作標(biāo)識符的條件編譯段都使其中的 printf語句不起作用,即起統(tǒng)一控制的作用,如同一個“開關(guān)”一樣。 (2) ifndef標(biāo)識符 程序段 1 else 程序段 2 endif 只是第一行與第一種形式不同:將“ ifdef”改為“ ifndef”。它的作用是若標(biāo)識符未被定義過則編譯程序段 1,否則編譯程序段 2。這種形式與第一種形式的作用相反。 以上兩種形式用法差不多,根據(jù)需要任選一種,視方便而定。例如,上面調(diào)試時輸出信息的條件編譯段也可以改為 ifndef RUN printf(x=%D, y=%D, Z=%D\n, x, y, Z)。 endif 如果在此之前未對 RUN定義,則輸出 x、 y、 Z的值。調(diào)試完成后,在運(yùn)行之前,加以下命令行: define RUN 則不再輸出 x、 y、 Z的值。 (3) if表達(dá)式 程序段 1 else 程序段 2 endif 它的作用是當(dāng)指定的表達(dá)式值為真 (非零 )時就編譯程序段 1,否則編譯程序段 2??梢允孪冉o定一定條件,使程序在不同的條件下執(zhí)行不同的功能。 例 ,根據(jù)需要設(shè)置條件編譯,使之能將字母全改為大寫輸出,或全改為小寫字母輸出。 define LETTER 1 main() { char str[20]=CLanGuaGe, C。 int i。 i=0 while((C=str[i])! =′\0′) { i++。 if LETTER 條件編譯 if(C> =′a′ amp。amp。 C< =′Z′) C=C32。 else if(C> =′A′ amp。amp。 C< =′Z′) C=C+32。 endif printf(%C, C)。 } } 運(yùn)行結(jié)果為: CLANGUAGE 現(xiàn)在先定義 LETTER為 1,這樣在對條件編譯命令進(jìn)行預(yù)處理時,由于 LETTER為真 (非零 ),則對第一個 if語句進(jìn)行編譯,運(yùn)行時使小寫字母變大寫。如果將程序第一行改為 defineLETTER0則在預(yù)處理時,對第二個 if語句進(jìn)行編譯處理,使大寫字母變成小寫字母 (大寫字母與相應(yīng)的小寫字母 ASCII代碼差 32)。此時運(yùn)行情況為 ClanGuaGe 有的讀者可能會問,不用條件編譯命令而直接用 if語句也能達(dá)到要求,用條件編譯命令有什么好處呢?的確,此問題完全可以不用條件編譯處理,但那樣做目標(biāo)程序長 (因為所有語句都編譯 ),運(yùn)行時間長 (因為在程序運(yùn)行時對 if語句進(jìn)行測試 )。而采用條件編譯,可以減少被編譯的語句,從而減少目標(biāo)程序的長度,減少運(yùn)行時間。當(dāng)條件編譯段比較多時,目標(biāo)程序長度可以大大減少。 本章介紹的預(yù)編譯功能是 C語言特有的,有利于程序的可移植性,增加程序的靈活性。 習(xí)題 定義一個帶參數(shù)的宏 ,使兩個參數(shù)的值互換 ,并寫出程序 ,輸入兩個數(shù)作為使用宏時的實參。輸出已交換后的兩個值。 輸入兩個整數(shù) ,求它們相除的余數(shù)。用帶參的宏來實現(xiàn) ,編程序。 給年份 year,定義一個宏 ,以判別該年份是否閏年。提示 :宏名可定為 LEAPYEAR,形參為 y,即定義宏的形式為 define LEAPYEAR(y) (讀者設(shè)計的字符串 ) 在程序中用以下語句輸出結(jié)果 : if (LEAPYEAR(year)) printf (%D iS a leap year,year)。 else printf (%D iS not a leap year,year)。 請分析以下一組宏所定義的輸出格式 : define NL putchar (′\n′) define PR (format,value)printf (value=%format\t,(value)) define PRINT1(f,x1) PR(f,x1)。NL define PRINT2 (f,x1,x2)PR (f,x1)。PRINT1(f,x2) 如果在程序中有以下的宏引用 : PR (D,x)。 PRINT 1(D,x)。 PRINT 2(D,x1,x2)。 寫出宏展開后的情況 ,并寫出應(yīng)輸出的結(jié)果 ,設(shè)x=5,x1=3,x2=8。 設(shè)計所需的各種各樣的輸出格式 (包括整數(shù)、實數(shù)、字符串等 ),用一個文件名“ ”,把這些信息都放到此文件內(nèi) ,另編一個程序文件 ,用 inClude “”命令以確保能使用這些格式。 分別用函數(shù)和帶參的宏 ,從 3個數(shù)中找出最大數(shù)。 試述“文件包含”和程序文件的連接 (link)的概念 ,二者有何不同 ? 用條件編譯方法實現(xiàn)以下功能 : 輸入一行電報文字 ,可以任選兩種輸出 ,一為原文輸出 。一為將字母變成其下一字母 (如‘ a?變成‘ B?……?Z? 變成‘ a?。其他字符不變 )。用 define命令來控制是否要譯成密碼。例如 : define CHANGE1則輸出密碼。若 define CHANGE0則不譯成密碼 ,按原碼輸出。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1