Дано:
#define f(x, y) (x+y)
#define g(x, y) (x*y)
#define A 1, 2
#define B 2, 3
int main() {
int a = f(A);
int b = g(A);
int c = f(B);
int d = g(B);
}
что не работает,
как я могу заставить его работать? Основная идея заключается в том, что у меня есть один список аргументов, которые я хочу передать двум разным макросам, не повторяя каждый раз список длинных аргументов.
Есть ли способ сделать это? [Вы можете изменить f & g; вы даже можете изменить A и то, как я называю макросы. Единственные требования: 1) список аргументов может появляться только один раз 2) он не может быть жестко закодирован... чтобы я мог вызывать макросы с разными аргументами
Если ваше решение не совсем работает, но «почти работает» (для вашего определения «почти»), я бы тоже хотел его услышать, возможно, я смогу подделать его, чтобы оно сработало.
Спасибо!
Изменить: f & g должны быть макросами. Они захватывают имена символов и манипулируют ими.