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...