C巨集 define的一些用法

2021-08-06 01:40:42 字數 890 閱讀 2722

c語言中的#define命令,在編譯預處理時進行簡單的字元替換。

其使用的一般形式為:#define 識別符號 字串

其中的「#」表示這是一條預處理指令。

凡是以「#」開頭的均為預處理命令。「define」為巨集定義命令。

「識別符號」為所定義的巨集名。「字串

」可以是常數、表示式、格式串等。

1.最常見的一種用法也是最簡單的一種用法,用#define pi

3.141592653589793238462643383279...即用pi來替換圓周率π的值,此方法可以很方便的修改π的精度,只需要修改一次即可。

2.定義巨集函式。如#define add(x) x+x可在程式編譯時直接將add(x)替換為x+x,但應該注意因為運算符號的優先順序帶來的二義性問題,可對比下方兩圖:

圖一為使用函式運算得出了正確結果。

圖二為使用巨集函式運算後得到了錯誤的值,因為它錯誤的展開成了2+2*3+3。

用#define定義巨集函式有很多很有用的使用方法,會使程式設計變得更加簡單。

例如#define size_arr(a) ((sizeof(a))/(sizeof(a[0])))可以求陣列長度

還有#define ptr(a) ((byte*)(void*)&(a))等等。

3.#define中的##,以為將前後兩個字串連線成乙個字串,如圖:

define的一些用法

1.define的多行定義 define可以替代多行的 在每乙個換行的時候加上乙個 define max x,y do while 0 no trailing 例子 define fzuserinforeset nsuserdefaults standarduserdefaults setobjec...

C語言的一些特殊用法 define

很久沒有寫blog了 不知道寫什麼好,就寫寫大家比較容易忽略的東西吧一 特殊的字串巨集 cpp define a x t x define b x x define c x x我們假設x 1,很久沒有寫blog了 不知道寫什麼好,就寫寫大家比較容易忽略的東西吧 一 特殊的字串巨集 cpp defin...

c 巨集定義用法 define

巨集定義語法 define name stuff define pi 3.14 定義乙個m,值為3.14 define do forever for 定義乙個死迴圈 define reg register 定義reg來作為register的別名 define case break case 在swi...