define的一些用法

2021-07-14 13:39:06 字數 1924 閱讀 2511

1.define的多行定義

define可以替代多行的**,在每乙個換行的時候加上乙個"\"

#define max(x,y) do while(0) /* (no trailing ; ) */ \

例子:

#define fzuserinforeset \

[[nsuserdefaults standarduserdefaults] setobject:kdefaultusername forkey:key_username];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_logintoken];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_memberid];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_headimage];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_gender];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_newmessage];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_roletype];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_tag];\

[[nsuserdefaults standarduserdefaults] removeobjectforkey:key_bindingtag];\

[[nsuserdefaults standarduserdefaults] setobject:@"0" forkey:key_usercash];\

[[nsuserdefaults standarduserdefaults] setobject:@"0" forkey:key_usercredits];\

[[nsuserdefaults standarduserdefaults] setobject:@"0" forkey:key_usertickets]

2.在大規模的開發過程中,特別是跨平台和系統的軟體裡,define最重要的功能是條件編譯。

#ifdef windows

......

......

#endif

#ifdef linux

......

......

#endif

可以在編譯的時候通過#define設定編譯環境

3.帶引數的巨集

#define 識別符號(x1,x2,x3...xn) 替換列表  (注意:x1,x2,x3..是巨集的引數,識別符號和其左括弧之間不能有空格)

使用方法:

#define max(x,y) ((x)>(y)?(x):(y))

i=max(j+k,m-n);

替換為:

i=max((j+k)>(m-n)?(j+k):(m-n));

#define si_ex(n) ((n)%2==0)

if(si_ex(i)) i++;

替換為:

if(si_ex((i)%2==0))

通過以上例子我們可以看出,識別符號帶引數(x1,x2,x3.....)在替換時會被替換列表(y1,y2,y3....)對應的替換,但是和順序無關。

例子:

#define fzuserinfowithkey(key)\

[[nsuserdefaults standarduserdefaults] objectforkey:key]

C巨集 define的一些用法

c語言中的 define命令,在編譯預處理時進行簡單的字元替換。其使用的一般形式為 define 識別符號 字串 其中的 表示這是一條預處理指令。凡是以 開頭的均為預處理命令。define 為巨集定義命令。識別符號 為所定義的巨集名。字串 可以是常數 表示式 格式串等。1.最常見的一種用法也是最簡單...

C語言的一些特殊用法 define

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

一些你也許不知道的 define 用法

define conn x,y x y define tochar x x define tostring x x x y表示什麼?表示x連線y,舉例說 int n conn 123,456 結果就是n 123456 char str conn asdf adf 結果就是 str asdfadf 怎...