Tôi muốn viết một macro trong C chấp nhận bất kỳ số lượng các thông số, không phải là một con số cụ thểLàm thế nào để thực hiện một macro variadic (số biến của tham số)
dụ:
#define macro(X) something_complicated(whatever(X))
nơi X
là bất kỳ số tham số nào
Tôi cần điều này vì whatever
bị quá tải và có thể được gọi với 2 hoặc 4 tham số.
Tôi đã thử xác định macro hai lần, nhưng định nghĩa thứ hai ghi đè macro đầu tiên!
Trình biên dịch Tôi đang làm việc với là g ++ (cụ thể hơn, mingw)
Bạn có muốn C hoặc C++ không? Nếu bạn đang sử dụng C, tại sao bạn biên dịch bằng trình biên dịch C++? Để sử dụng macro C99 variadic thích hợp, bạn nên biên dịch bằng trình biên dịch C hỗ trợ C99 (như gcc), không phải trình biên dịch C++, vì C++ không có macro Vdd chuẩn. –
Vâng, tôi cho rằng C++ là một tập hợp siêu C trong lĩnh vực này .. – hasen
http://tigcc.ticalc.org/doc/cpp.html#SEC13 có giải thích chi tiết về các macro biến thể. – Gnubie