


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、預處理指令(條件編譯)講師:李南江條件編譯的概念在很多情況下,我們希望程序的其中一部分代碼只有在滿足一定條件時才進行編譯,否則不參與編譯(只有參與編譯的代碼最終才能被執行),這就是條件編譯。一、基本用法#if 條件1 .code1. #elif 條件2 .code2. #else .code3. #endif一、基本用法1如果條件1成立,那么編譯器就會把#if 與 #elif之間的code1代碼編譯進去(注意:是編譯進去,不是執行,很平時用的if-else是不一樣的)2 如果條件1不成立、條件2成立,那么編譯器就會把#elif 與 #else之間的code2代碼編譯進去3 如果條件1、2都不成
2、立,那么編譯器就會把#else 與 #endif之間的code3編譯進去4 注意,條件編譯結束后,要在最后面加一個#endif,不然后果很嚴重(自己思考一下后果)5 #if 和 #elif后面的條件一般是判斷宏定義而不是判斷變量,因為條件編譯是在編譯之前做的判斷,宏定義也是編譯之前定義的,而變量是在運行時才產生的、才有使用的意義二、舉個例子#include 2 3 #define MAX 11 4 5 int main () 6 7 #if MAX = 0 8 printf(MAX是0); 9 #elif MAX 010 printf(MAX大于0);11 #else12 printf(MAX
3、小于0);13 #endif14 return 0;15 在第3行定義了一個宏MAX,當然在開發中這個MAX可能被定義在其他頭文件中,現在只是為了方便演示,就寫到main函數上面了。注意第7到第13行的條件編譯語句。由于MAX為11,所以#elif的條件成立,第10行代碼將會被編譯進去,其實編譯預處理后的代碼是這樣的:int main ()4 5 printf(MAX大于0);6 return 0;7 三、其他用法1.#if defined()和#if !defined()的用法#if 和 #elif后面的條件不僅僅可以用來判斷宏的值,還可以判斷是否定義過某個宏。比如:#if defined(MAX) .code.#endif如果前面已經定義過MAX這個宏,就將code編譯進去。它不會管MAX的值是多少,只要定義過MAX,條件就成立。條件也可以取反:#if !defined(MAX) .code.#endif如果前面沒有定義過MAX這個宏,就將code編譯進去。2.#ifdef和#ifndef的使用#ifdef的使用和#if defined()的用法基本一致 #ifdef MAX .code. #endif如果前面已經定義過MAX這個宏,就將code編譯進去。* #ifndef又和#if !defined()的用法基本一致 #if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省盤錦市興隆臺區遼河中學2024-2025學年八年級下學期期中生物試題(含答案)
- 設備維護管理規范
- 自動控制系統實驗指導書
- 設備供貨方案
- 廣東省清遠市四校聯盟2024-2025學年高一下學期期中聯考生物試卷(含答案)
- 幼兒園《小壁虎借尾巴》課件
- 2025年Android知識體系!阿里P8面試官都說太詳細了一線互聯網公司面經總結-android p8知識體系圖
- 2025年android適配器ui2025年Android面經分享面試總結-android 適配器模式面試
- 建筑施工特種作業-建筑架子工(普通腳手架)真題庫-5
- 山東數學特色題目及答案
- BIM在公路工程中的三維可視化應用-洞察闡釋
- 公司貴重金屬管理制度
- 離散數學考試題及答案
- 安徽省安慶望江縣聯考2025年七年級英語第二學期期中質量檢測模擬試題含答案
- 森林草原防火 無人機巡查技術規范 編制說明
- 2025年江蘇省蘇州吳中、吳江、相城區初三英語一模試題及答案
- 智能化汽車中的專利戰略布局-洞察闡釋
- 不寐的中醫護理常規
- 2024年新疆維吾爾自治區、新疆生產建設兵團中考語文試卷(含答案與解析)
- 2025至2030年中國精致石英砂濾料行業投資前景及策略咨詢報告
- 保育師(高級)職業技能鑒定參考試題(附答案)
評論
0/150
提交評論