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.

questionAnswers(3)

yourAnswerToTheQuestion