【发布时间】:2020-04-04 14:34:58
【问题描述】:
我想有一个通用版本的#define concatenate(a, b, c) a ## b ## c
我试过这样:
#include <stdio.h>
#define concatenate(arg1, ...) arg1 ## __VA_ARGS__
int main()
{
int dob = 121201;
printf("%d", concatenate(d, o, b));
return 0;
}
我也尝试了很多其他方法:
#define concatenate(arg1, ...) arg1 ## ##__VA_ARGS__
#define concatenate(...) ## ##__VA_ARGS__
#define concatenate(...) ##__VA_ARGS__
#define concatenate(arg1, ...) arg1 ## ...
#define concatenate(arg1, ...) arg1 ## concatenate(##__VA_ARGS__)
唉,我所有的尝试都失败了。我想知道是否有可能以任何方式做到这一点?
【问题讨论】:
标签: c c-preprocessor variadic-macros token-pasting-operator