【发布时间】:2012-06-06 19:46:27
【问题描述】:
我正在尝试创建一个宏定义,它可以根据上下文发出 C++ 或 Objective-C,但似乎无法轻松地在宏内构造 NSString。 C++ 版本很简单,因为它使用常规字符串,但要制作一个发出 NSString 的字符串却很棘手:
#define FOO(x) bar(@##x)
预期的结果是通过前缀@将字符串参数转换为NSString参数:
FOO("x")
// => bar(@"x")
我得到的是一个阻止编译的错误:
Pasting formed '@"x"', an invalid preprocessing token
【问题讨论】:
标签: c++ objective-c c-preprocessor