300_____________________________Часть II. Программирование на C++
^include <stdio.h> #include <stdarg.h> ftinclude <iostream.h>
int Addlnts(int x, . . .) ;
void main() {
int Result;
Result = Addlnts(5,8,2,5,99,4,5);
cout « "Возвращаемое Addlnts значение: " « Result « endl;
}
int Addlnts(int x,...) (
int Sum = x;
va_list ListPtr;
int CurArg;
va_start(ListPtr, x) ;
while ((CurArg = va_arg(ListPtr, int)) != -1) (
Sum += CurArg;
} va end(ap) ;
return (Sum) ;
}
Функции Addlnts () можно передать неограниченное количество аргументов. Однако при этом должен присутствовать по крайней мере один фиксированный аргумент, служащий "якорем" для типа данных va_list. Последний (если их несколько) фиксированный аргумент передается макросу va_start для указания начала списка аргументов.
Использование макросов va_ позволяет добиться гибкости для ваших функций. Создавая функции, вы не будете жестко скованы числом их параметров.
Далее...
Теперь вы в достаточной мере изучили некоторые возможности Borland C++, чтобы попробовать их на практике. В процессе экспериментов с различными функциями и приемами программирования C++, у вас неизбежно