Название: Аргумент функции типа va_list Отправлено: serj_f от Май 19, 2004, 11:35 Есть ф-ция принимеющая один из аргументов тип va_list :
void gtk_list_store_set_valist (GtkListStore *list_store, GtkTreeIter *iter, va_list var_args); Как мне подготовить эту переменную (var_args) для использования этой ф-ции. P.S. Это не вопрос по gtk т.к. ф-ция могла бы быть любой - мне важно подготовить эту переменную. Название: Аргумент функции типа va_list Отправлено: Admin от Май 19, 2004, 12:22 Я так думаю что эта используется для вызова из функций с большим количеством аргументов. Подготовить va_list тебе наверно не удастся.
Посмотри этот пример из MSDN может он поможет. int average( int first, ... ) { int count = 0, sum = 0, i = first; va_list marker; va_start( marker, first ); /* Initialize variable arguments. */ while( i != -1 ) { sum += i; count++; i = va_arg( marker, int); } va_end( marker ); /* Reset variable arguments. */ return( sum ? (sum / count) : 0 ); } Название: Аргумент функции типа va_list Отправлено: Anonymous от Май 19, 2004, 12:38 Цитата: "Admin" Я так думаю что эта используется для вызова из функций с большим количеством аргументов. Подготовить va_list тебе наверно не удастся. Посмотри этот пример из MSDN может он поможет. int average( int first, ... ) { int count = 0, sum = 0, i = first; va_list marker; va_start( marker, first ); /* Initialize variable arguments. */ while( i != -1 ) { sum += i; count++; i = va_arg( marker, int); } va_end( marker ); /* Reset variable arguments. */ return( sum ? (sum / count) : 0 ); } Ага. Похоже что эту ф-цию(gtk_list_store_set_valist) можно вызывать только из ф-ции с переменным числом аргументов:-( Название: Аргумент функции типа va_list Отправлено: Admin от Май 19, 2004, 12:45 ага я как раз об этом
Название: Аргумент функции типа va_list Отправлено: serj_f от Май 19, 2004, 14:48 А вот еще вопрос.
Например есть ф-ция func_1(arg1, ...) и у меня есть массив со строками char **arr причем заранее неизвестно сколько там строк. Можно ли передать эти строки с массива arr в ф-цию func_1()? Может макрос какой есть? Название: Аргумент функции типа va_list Отправлено: Admin от Май 19, 2004, 15:33 передаешь в функцию указатель char **arr и его размеры
примерно так func(arr,3,4) |