Given:C luận vĩ mô 'lưu trữ'
#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);
}
mà không làm việc,
làm thế nào tôi có thể làm cho nó hoạt động? Ý tưởng cơ bản là tôi có một danh sách các đối số mà tôi muốn chuyển tới hai macro khác nhau, mà không lặp lại danh sách các đối số dài mỗi lần.
Có cách nào để thực hiện việc này không? [Bạn được quyền sửa đổi f & g; bạn thậm chí còn được chào đón để sửa đổi A & cách tôi gọi các macro. Các yêu cầu duy nhất là: 1) danh sách arguemnt chỉ có thể xuất hiện một lần 2) nó không thể được mã hóa cứng ... để tôi có thể gọi các macro với các đối số khác nhau
Nếu bạn là giải pháp không khá công việc nhưng 'hầu hết các công trình' (đối với bạn định nghĩa gần như), tôi cũng muốn nghe nó, có lẽ tôi có thể làm cho nó hoạt động.
Cảm ơn!
Chỉnh sửa: f & g phải là macro. Họ nắm bắt các tên biểu tượng và thao túng chúng.
Nếu bạn thay đổi các yêu cầu của câu hỏi ban đầu của bạn, vui lòng cung cấp một ví dụ phù hợp cho thấy những gì bạn thực sự muốn. –