Много раз я хочу, чтобы функция получала переменное количество аргументов, заканчивающихся, например, NULL
#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);
}
Могу ли я указать gcc или clang предупреждать, если foo получает переменные, отличные от char*
? Что-то похожее на __attribute__(format)
, но для нескольких аргументов одного и того же типа указателя.