CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
va_arg - va_start - работа с переменным числом параметров
Описание
Эти макросы используются для того, чтобы поддерживать
список аргументов, используемых в функциях с перемен-
ным числом аргументов (например, в функции vprintf).
Тип va_list представляет собой список переменного чис-
ла аргументов, определяемый в stdarg.h, вместе с этими
тремя макросами; этот тип позволяет обрабатывать спис-
ки аргументов функции, когда ей еще неизвестно число
передаваемых аргументов.
Массив va_list содержит информацию, необходимую для
va_arg и va_end. Когда вызванная функция вводит спи-
сок аргументов, она объявляет переменную типа va_list.
Функция va_start вызывается первой для инициализации
списка аргументов, причем arg_ptr указывает на первый
аргумент в этом списке va_list. Параметр prev_parm -
- параметр, предшествующий первому аргументу. После
обращения к va_start каждый вызов va_arg будет брать
данные названного типа из указанного места и увеличи-
вать значение arg_ptr.
va_end сбрасывает arg_ptr в NULL.
Использование
#include <stdarg.h>
type va_arg(va_list arg_ptr, type); /* ANSI */
void va_end(va_list arg_ptr); /* ANSI */
void va_start(va_list arg_ptr, prev_parm); /* ANSI */
Возвращаемое значение
va_arg возвращает текущий аргумент.
va_start и va_end равнозначны void.
Пример
Смотрите vprintf.
