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

正文內(nèi)容

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

2025-10-07 15:50本頁(yè)面
  

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