anonymous
написал 19 мая 2004 года в 12:33 (1472 просмотра)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Есть ф-ция принимеющая один из аргументов тип va_list :
void gtk_list_store_set_valist (GtkListStore *list_store, GtkTreeIter *iter, va_list var_args);
Как мне подготовить эту переменную (var_args) для использования этой ф-ции.
P.S. Это не вопрос по gtk т.к. ф-ция могла бы быть любой — мне важно подготовить эту переменную.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
в man 3 va_start есть рабочий пример.
В мане не такой пример. Мне нужно вызывать
эту ф-цию причем с агументом типа va_list. Для этого мне нужно подготовить этот параметр, вот я и спрашиваю как мне этот параметр подготовить.
Функции такого рода предназначены для создания функций оболочек:
void some_func (int var, …)
{
va_list ap;
va_start (ap, var);
gtk_list_store_set_valist (*list_store, *iter, ap);
va_end (ap);
}
Создавать такие списки искуственно смысла не имеет, т.к. они рассчитаны на работу со стеком.
Т.е. получается что эту ф-цию (gtk_list_store_set_valist) можно вызывать только из ф-ции с переменным числом аргументов? А подготовить этот параметр из ф-ции с фиксированным кол-вом параметров нельзя?
http://developer.gnome.org/doc/API/2.0/gtk/GtkListStore.html
Просто взять аналог этой функции с переменным числом аргументов и без va_list — gtk_list_store_set. Функции, принимающиеva_list в качестве аргумента предназанчены исключительно для вызова из функций с переменным числом аргументов (например, функции-обертки).
А если я незнаю заранее какие и сколько у меня будут аргументы. Например если у меня есть масив с этими строками, можно ли их как-нибудь подставить в ф-цию с переменным числом аргументов.
va_list — это же указатель на участок стека, где кончаются статические данные. Если мы va_list присвоим значение этого массива, то что нам грозит? Надо пробовать, я не уверен точно. Стандарт требует многоточия.