Возможный дубликат:
C/С++: как сделать переменный макрос (переменное количество аргументов)
Мне нужен макрос, который будет расширяться в массиве, который содержит его аргументы. Например:
#define foo(X0) char* array[1] = {X0}
#define foo(X0, X1) char* array[2] = {X0, X1}
и т.д. Моя проблема в том, что мне нужно использовать 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) ..
И используйте ____VA_ARGS____, но я не знаю, как я могу расширить foo в макросе foo_k в зависимости от его количества параметров? Возможно ли это?