Введение в программирование

Методы с переменным числом параметров


Метод может иметь переменное число параметров: это указывается в конце списка параметров символом многоточия ... . Методы с переменным числом параметров должны иметь как минимум один описанный формальный параметр.

Для применения переменного числа параметров можно использовать:

  • макрос va_start(указатель_списка_параметров,последний_параметр) - при инициализации указателя и установке его на начало переменного списка параметров;
  • макрос va_arg(указатель_списка_параметров,i) - при выборе параметра и продвижении указателя в соответствии с его типом на следующий параметр;
  • макрос va_end((указатель_списка_параметров) - при установке указателя на список параметров, равный null, после извлечения значений всех параметров;
  • тип va_list - для создания указателя на список параметров.

Например:

#include <stdio.h> // Библиотека, содержащая тип va_list #include <varargs.h> #include <iostream> int Fx ( int i1, ... ); // Прототип Функции с переменным // числом параметров void main( void ) { // Вызов функции Fx с различным // числом параметров std::cout<< Fx ( 100, 200) ); std::cout<< Fx ( 5 ) ); std::cout<< Fx ( -1,-3,45 ) ); } int Fx ( int i1, ... ) // Реализация функции с переменным // числом параметров { int sumx,i; sumx = 0, i = i1; va_list list1; // Список параметров va_start(list1, i1 ); // Инициализация списка параметров while( i != -1 ) { sumx += i; i = va_arg(list1, int); //Извлечение следующего параметра } va_end(list1); return( sumx ); }



Содержание раздела