




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
介紹3種最常用的預處理功能:文件包含、宏定義、條件編譯。需要注意,預處理命令不是C語句。這些命令均以“#”開頭。當對一個源文件進行編譯時,系統將自動引用預處理程序對源程序中的預處理部分做處理,處理完畢自動進入對源程序的編譯。靈活使用預處理命令,可以提高編程效率。任務2.5
利用預處理命令提高編程效率2.5.1宏定義1、不帶參數的宏定義
例如:#define
PI
3.1415926
在編譯預處理時,對程序中所有的宏名“PI”,都用宏定義中的“3.1415926”去替換,此過程稱為“宏替換”。兩種形式:
用一個簡單且見名知意的“宏名”代表“替換文本”,“替換文本”可以是常數、表達式、格式串等。該形式的宏定義可以提高編程效率。(1)
#define宏名(2)#define宏名
替換文本僅說明宏名對應的標識符被定義。任務2.5
利用預處理命令提高編程效率【例2.33】使用不帶參數的宏定義:根據輸入的半徑,求圓的周長和面積。
編譯預處理時,對程序中所有的“PI”,都用宏定義中的“3.1415926”去替換。
printf函數中的“%6.2f”表示以實型數據格式輸出,輸出的數據最小寬度是6,并且保留2位小數。宏定義不是C語句,不必在行末加分號!2.5.1宏定義1、不帶參數的宏定義
任務2.5
利用預處理命令提高編程效率2.5.1宏定義2、帶參數的宏定義
帶參宏定義的一般形式:#define宏名(形參表)
替換文本其中,在替換文本中含有形參表中的各個形參。
帶參宏調用的一般形式:宏名(實參表)在宏調用時,不僅要宏展開,而且要用實參去代換宏定義的形參。【例2.34】使用帶參數的宏定義:根據輸入的半徑,求圓的面積。#include<stdio.h>#definePI
3.14159
//宏定義PI符號常量(不帶參數)#defineS(r)
PI*(r)*(r)
//宏定義面積計算公式(帶參數)intmain(void){floata,area;//定義半徑、面積變量
while(1)
{
printf("請輸入半徑:");
scanf("%f",&a);
if(a<0)break;//若輸入的半徑是負值,則退出循環
area=S(a);
//宏調用
printf("半徑=%6.2f\n",a);
printf("面積=%6.2f\n",area);
}}練習:【例2.35】使用帶參數的宏定義:宏定義條件表達式。任務2.5
利用預處理命令提高編程效率
在嵌入式軟件設計中,經常用到對寄存器的位操作。根據表1-7:
說明:(1)宏定義中的宏名一般都用大寫字母。(2)帶參宏定義,對其替換文本中的參數和表達式外加括號是為了不引起歧義,提高程序設計的可靠性。2.5.1宏定義2、帶參數的宏定義
任務2.5
利用預處理命令提高編程效率2.5.2文件包含文件包含命令行的一般形式:#include<文件名>或#include"文件名"在前面我們已多次使用此命令包含庫函數的頭文件。例如:
#include<stdio.h>
功能:在編譯預處理時,將指定的文件插入該命令行位置取代該命令行,從而將指定的文件和當前的源程序文件連成一個源文件。
(1)在#include命令中,文件名可以用尖括號或雙撇號括起來。例如:
#include<stdio.h>或 #include"stdio.h"
一般來說,若要包含的是庫函數,則用尖括號;若要包含的是用戶自己編寫的文件(這種文件一般在用戶當前目錄中),一般用雙撇號。
(2)若要包含多個文件,則需要使用多個include命令。(3)文件包含允許嵌套,即在一個被包含的文件中又可以包含另一個文件。說明:
任務2.5
利用預處理命令提高編程效率
在程序設計中,可將一些公用的宏定義等單獨組成一個文件,在其他文件的開頭用包含命令包含該文件即可使用。
例如,若多個源文件均用到下面的宏定義:
#definePI
3.1415926 #defineS(r)
PI*(r)*(r)
可將這些宏定義做成一個公用的文件“common.h”(文件名可靈活設定),其他源文件若需使用這兩個宏定義,則只需在該源文件開頭處加一行代碼即可:#include"common.h"2.5.2文件包含任務2.5
利用預處理命令提高編程效率
可按不同的條件去編譯不同的程序部分,因而產生不同的目標代碼。這有利于程序的移植和調試。第1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業生涯與特許金融分析師考試的平衡考量試題及答案
- 2024年掌握項目管理的最佳方法試題及答案
- 2025年инвестиции в акции и их особенности試題及答案
- 2025年國際金融理財師復習過程中合理利用微課堂的策略試題及答案
- 2025年特許金融分析師考試分析手段試題及答案
- 財務風險分析在注冊會計師考試中的重要性與試題及答案
- 詳解2025年特許金融分析師考試試題及答案
- 微生物檢驗的創新技術和未來方向試題及答案
- 碳酸飲料與人體健康考核試卷
- 盾構機施工中的安全管理與事故預防措施研究進展綜述考核試卷
- 顏色標準LAB值對照表
- 金壇區蘇科版二年級上冊勞動《06樹葉書簽》課件
- 北斗衛星導航理論與應用課件(完整版)
- 蝦苗購銷合同模板
- 信號基礎信號—聯鎖系統
- 2020最新八年級下冊《道德與法治》知識點總結(最全版)
- 數學教師實習日記16篇
- 財產保全申請登記表
- 家裝施工驗收手冊(共13頁)
- 《責任勝于能力》PPT課件.ppt
- 先后天八卦與風水羅盤131712904
評論
0/150
提交評論