程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 簡略講授C說話中宏的界說與應用

簡略講授C說話中宏的界說與應用

編輯:關於C++

簡略講授C說話中宏的界說與應用。本站提示廣大學習愛好者:(簡略講授C說話中宏的界說與應用)文章只能為提供參考,不一定能成為您想要的結果。以下是簡略講授C說話中宏的界說與應用正文


宏界說是預編譯功效的一種, 預編譯又稱為預處置, 是為編譯做的准備任務的階段。處置#開首的指令, 好比拷貝 #include 包括的文件代碼,#define宏界說的調換,前提編譯等。
應用宏界說的利益:應用宏界說的利益:可進步法式的通用性和易讀性,削減紛歧致性,削減輸出毛病和便於修正。例如 π 這個常量,我們有時刻會在法式的多個處所應用,假如每次應用都從新界說,一來比擬費事,二來輕易失足,所以我們可以把 π 做成宏界說來應用。
 
語法解釋:
(1)宏名普通用年夜寫
(2)應用宏可進步法式的通用性和易讀性,削減紛歧致性,削減輸出毛病和便於修正。例如:數組年夜小經常使用宏界說
(3)預處置是在編譯之前的處置,而編譯任務的義務之一就是語法檢討,預處置不做語法檢討。
(4)宏界說末尾不加分號;
(5)宏界說寫在函數的花括號外邊,感化域為厥後的法式,平日在文件的最開首。
(6)可以用#undef敕令終止宏界說的感化域
(7)宏界說可以嵌套
(8)字符串" "中永久不包括宏
(9)宏界說不分派內存,變量界說分派內存。

界說:

#define 宏名 內容

#define kArrLen 10 // OC駝峰定名法:首字符為k,其他單詞首字符年夜寫

#define ARR_LEN 10 // C說話中的宏定名標准:一切字母年夜寫,單詞用下劃線分隔

例如:

#define PI 3.1415926

我們便可以應用 PI 來取代 3.1415926 便可:

float r = 0.5;
float area = PI * r * r;
printf("area = %f\n", area);

在法式預編譯階段會把 PI 調換成 3.1415926:

float area = 3.1415926 * r * r;

宏界說內容很簡略,也很好懂得,然則有幾個以下的留意事項:

1、由於宏界說只是簡略的調換,假如宏界說的內容有運算的時刻,要把每一個變量加上括號,以避免影響運算的優先級

好比:#define MUL(A, B) (A * B)

應用辦法:

MUL(3 + 5, 5 + 6) //會調換成 3 + 5 * 5 + 6 = 34

我們願望(3 + 5) * (5 + 6),所以界說宏界說的時刻應當:

#define MUL(A, B) ((A) * (B))

2、留意宏界說前面沒有分號(;),它不是一條語句

3、宏界說是在法式編譯後期停止調換,此時法式還沒有編譯

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved