Я пытаюсь использовать va_arg для создания общей фабричной функции в моей графической библиотеке. При прохождении va_arg дважды в одной и той же функции, они проходят по той же стоимости, а не двух разных:Прохождение va_arg дважды к функции приводит к тому же значению
GUIObject* factory(enumGUIType type, GUIObject* parent, ...){
va_list vl;
va_start(vl, parent);
...
label->SetPosition(va_arg(vl, int), va_arg(vl, int));
va_end(vl);
return finalObjectPointer;
}
factory(LABEL, theParent, 100,200); // Results in position 200:200
Что вызывает это неожиданное поведение?
Использование функций va_arg - это скорее эксперимент, и я, вероятно, не буду использовать его в своем графическом интерфейсе, но было бы интересно узнать, что из этого вышло. – Zoomulator