#define Connect(x,y) x##y
#define ToChar(x) #@x
#define ToString(x) #x
-
##
連接操作符:表示 x 連接 y ,生成 xy
NSString *str = Connect(@"a", @"b"); 結果是 str = @"ab" -
#@
字符化操作符:表示將單個字符參數名轉換成字符,以一個單引號括起來,其實就是給 x 加上單引號,結果返回是一個 const char。注意:只能用于有傳入參數的宏定義中,且必須置于宏定義體中的參數名前。
char a = ToChar(a); 結果是 a = 'a'
3.#
字符串化操作符:表示將宏定義中的闖入參數名轉換成用一對雙引號括起來參數名字符串。其職能用于有傳入參數的宏定義中,且必須之一宏定義體中的參數名前,結果就是在 x 加雙引號
char *str = ToString(123); 結果是 str = "123"
4.\
行繼續操作符:表示當定義的宏不能用一行表達完整時,可以用\
表示下一行繼續宏的定義。注意:最后一行不要加行繼續符。編譯器會在編譯之前會自動將\
與換行回車去掉;寫多行是,反斜杠后不能有空格,否則編譯器會報錯。