макрос target-c для вариационной функции - PullRequest
1 голос
/ 27 июля 2010

Вот пример того, чего я пытаюсь достичь. Я пытаюсь создать макрос, который бы выглядел так:

SOMEMACRO(obj, obj, obj, ..., obj);

Макрос будет компилироваться в:

some_function(obj, obj, obj, ..., obj, SOMETHING_ELSE, SOMETHING_ELSE);

Вот пример макроса для функции с 1 параметром:

#define SOMEMACRO(x) some_function(x, SOMETHING_ELSE, SOMETHING_ELSE)

Но работает только с одним параметром (x)

Так что, в принципе, мне нужно то же самое, но чтобы я мог передать различное количество аргументов. Было бы хорошо, чтобы компилятор взял все, что находится между (и), и просто заменил X на него. Я не уверен, что мне было ясно о проблеме, но я надеюсь, что вы поняли.

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 27 июля 2010
#define SOMEMACRO(...) some_func(__VA_ARGS__, SOMETHING_ELSE, SOMETHING_ELSE);
1 голос
/ 27 июля 2010

Извините, я отказался от поиска слишком рано, я думаю.Чтобы ответить на мой собственный вопрос:

Макрос для функции с переменным числом выглядит следующим образом:

#define MACRONAME(...) some_function(__VA_ARGS__, SOMETHING_ELSE, SOMETHING_ELSE)
...