Bes*_*esi 7 objective-c ios c-preprocessor
尽管这不是一个好的编码实践,但我想要一个应该如下工作的宏:
CREATE_STRING(fooBar)
Run Code Online (Sandbox Code Playgroud)
它应该创建以下代码:
NSString *fooBar = @"fooBar";
Run Code Online (Sandbox Code Playgroud)
我的宏看起来像这样:
#define CREATE_STRING(varName) NSString *varName = @"varName";
Run Code Online (Sandbox Code Playgroud)
但现在我得到以下内容
NSString *fooBar = @"varName";
Run Code Online (Sandbox Code Playgroud)
小智 14
使用
#define CREATE_STRING(varName) NSString *varName = @#varName
Run Code Online (Sandbox Code Playgroud)
代替.(另请注意,您不需要使用尾随分号,以便能够将您的宏"调用"为类似C的函数.)
Jer*_*myP 10
这是怎么做的
#define CREATE_STRING(varName) NSString *varName = @"" #varName
Run Code Online (Sandbox Code Playgroud)
它利用了两个字符串常量一个接一个地被编译器连接起来的事实.