Typesafe varargs w C z gcc
Wiele razy chcę, aby funkcja otrzymywała zmienną liczbę argumentów, na przykład zakończoną wartością NULL
<code>#define push(stack_t stack, ...) _push(__VARARG__, NULL); func _push(stack_t stack, char *s, ...) { va_list args; va_start(args, s); while (s = va_arg(args, char*)) push_single(stack, s); } </code>
Czy mogę poinstruować gcc lub clang, aby ostrzegał, jeśli foo otrzyma niechar*
zmienne? Coś podobnego do__attribute__(format)
, ale dla wielu argumentów tego samego typu wskaźnika.