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.