今天突發奇想,object C裡面 @"hello" 就代表了 hello 的字符串。
然後C++裡面 "hello" 即代表 hello 字符串。
能否寫個define 類似於 @"__str__" = "__str__" 的功能。
類似 #define @"__str__" "__str__" 這樣在寫@“hello" 的時候就被宏替換成了"hello"了。
但這樣編譯是不會通過的,請問能寫出這樣的宏來麼。
不可以的,因為字符'@'不滿足宏的定義,即宏變量名不能夠包含'@'標識符。
可以采用如下形式:
#define S(x) (x)
當使用S("abc") 指的字符串 abc