netlib.narod.ru< Назад | Оглавление | Далее >

B7. Списки аргументов переменной длины: <stdarg.h>

Заголовочный файл <stdarg.h> предоставляет средства для перебора аргументов функции, количество и типы которых заранее не известны. Пусть lastarg — последний именованный параметр функции f с переменным числом аргументов. Внутри f объявляется переменная ap типа va_list, предназначенная для хранения указателя на очередной аргумент:

  va_list ар;

Прежде чем будет возможен доступ к безымянным аргументам, необходимо один раз инициализировать ap, обратившись к макросу va_start:

  va_start(va_list ap, lastarg);

С этого момента каждое обращение к макросу:

  тип va_arg(va_list ap, тип);

будет давать значение очередного безымянного аргумента указанного типа, и каждое такое обращение будет вызывать автоматическое приращение указателя ap, чтобы последний указывал на следующий аргумент. Один раз после перебора аргументов, но до выхода из f необходимо обратиться к макросу

  void va_end(va_list ap);

netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz