HANDLE * hmains(HANDLE handle,...)
{
va_list par; //лист с параметрами*
int count = -1; // количество переменных
int size; // вспомогательная переменная
HANDLE *cp = &handle; // Начало в памяти для всех переменных функции
va_start(par,handle); // присваиваем листу начало для переменных
while(cp = va_arg(par,HANDLE*)) // подсчёт количество переменных
count++;
size = count;
va_start(par,handle);
HANDLE *hmain = new HANDLE[count]; // Память под массив переменных
hmain[0] = handle; // Первая переменная в массиве
while(cp = va_arg(par,HANDLE *)) // Заполняем массив оставшимися переменными
{
if(size==1)
break;
hmain[count - size +1] = cp; // непосредственно заполнение
size--;
}
return hmain; // Возвращаем массив переменных
}
Конечно можно придраться к реализации или с умничать по каждой строчке,но статья для возможности показать вариант реализации,а уж каждый сможет его как хочет изменять и модифицировать)
не помешали бы комментарии к каждой строчке кода, для чего она предназначена
ОтветитьУдалить