可能重复:
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)