请考虑以下代码:
struct S {};
#define CREATE_INSTANCE S instance_##__LINE__
int main()
{
CREATE_INSTANCE;
CREATE_INSTANCE;
return 0;
}
我想要它做的是创建名为S
和instance_7
的{{1}}的两个实例。它实际上做的是两次创建instance_8
。
如何实现我的目标?
答案 0 :(得分:2)
使用一些间接:
#define Concat_(a, b) a ## b
#define Concat(a, b) Concat_(a, b)
#define CREATE_INSTANCE S Concat(instance_, __LINE__)