Я хочу создать макросы, которые будут вставлять параметр в вызов функции.Например, у меня есть функция Action()
, объявленная ниже.Действие принимает в качестве входных данных перечисление для номера состояния и форматированную строку с необязательными аргументами для строки.
Я хочу определить макросы так, чтобы вместо вызова Action( ActionState1, "someText %d", &arg)
с ActionState1
для параметра состояния я мог просто вызвать State1("someText %d", &arg)
.Таким образом, макрос вставит в ActionState1
параметр состояния для меня.Я думаю о чем-то вроде следующего:
#define State1(formatedString, ...) Action(ActionState1, formatedString, ...)
#define State2(formatedString, ...) Action(ActionState2, formatedString, ...)
#define State3(formatedString, ...) Action(ActionState3, formatedString, ...)
enum {
ActionState1,
ActionState2,
ActionState3
}
static void Action( State state, String formatedString, ...);
Кто-нибудь знает, какой будет правильный формат для этого?