printf()
- это переменная функция . Это означает, что его первый аргумент указывает количество и тип оставшихся аргументов, которые должны быть извлечены из стека.
Первый аргумент - и единственный, на который не влияет переменная функция, - это строка и, следовательно, указатель (на массив char
, если это имеет значение). Остальные аргументы обрабатываются по-разному и не перечислены в упомянутом вами упрощенном прототипе.
Кстати, вот полный прототип printf()
, полученный из моего заголовка stdio.h
:
extern int printf (const char *format, ...);