尽管这不是一个好的编码实践,但我想要一个应该如下工作的宏:
CREATE_STRING(fooBar)
它应该创建以下代码:
NSString *fooBar = @"fooBar";
我的宏看起来像这样:
#define CREATE_STRING(varName) NSString *varName = @"varName";
但现在我得到以下内容
NSString *fooBar = @"varName";
解决方法
这是怎么做的
#define CREATE_STRING(varName) NSString *varName = @"" #varName
它利用了两个字符串常量一个接一个地被编译器连接起来的事实.