Chcę napisać makro w C, który akceptuje dowolną liczbę parametrów, nie określonego numeruJak zrobić zmiennej liczbie argumentów makra (zmienna liczba argumentów)
przykład:
#define macro(X) something_complicated(whatever(X))
gdzie X
jest dowolna liczba parametrów
Potrzebuję tego, ponieważ whatever
jest przeciążony i można go wywołać z 2 lub 4 parametrami.
Próbowałem dwukrotnie zdefiniować makro, ale druga definicja zastąpiła pierwszą!
Kompilator pracuję z jest g ++ (bardziej konkretnie, MinGW)
Czy chcesz C lub C++? Jeśli używasz C, to dlaczego kompilujesz się z kompilatorem C++? Aby użyć właściwych makr warstwowych C99, powinieneś kompilować z kompilatorem C obsługującym C99 (jak gcc), a nie kompilatorem C++, ponieważ C++ nie ma standardowych makr variadic. –
Cóż, założyłem, że C++ jest super zbiorem C pod tym względem .. – hasen
http://tigcc.ticalc.org/doc/cpp.html#SEC13 zawiera szczegółowe wyjaśnienie makr variadic. – Gnubie