具有可变数量参数的C++宏

Mir*_*pas 13 c++ macros

可能重复:
C/C++:如何创建可变参数宏(可变数量的参数)

我需要宏将在包含它的参数的数组中展开.例如:

#define foo(X0) char* array[1] = {X0}
#define foo(X0, X1) char* array[2] = {X0, X1}
Run Code Online (Sandbox Code Playgroud)

等等.我的问题是我需要使用与foo的参数变量数,所以我希望能够使用FOO("foo0"),但也使用FOO("foo0","foo1","foo2的" ..."欢").我知道有可能:

#define foo(...)
#define foo_1(X0) ..
#define foo_2(X0, X1) ..
#define foo_3(X0, X1, X2) ..
#define foo_N(X0, X1, ... XN) ..
Run Code Online (Sandbox Code Playgroud)

并使用____VA_ARGS____,但我不知道如何在foo_k宏中扩展foo,具体取决于它的参数计数?这可能吗?

Joe*_*lav 17

怎么样:

#define FOO( ... ) char* x[] = { __VA_ARGS__ };
Run Code Online (Sandbox Code Playgroud)