Max Dmitrichenko wrote:
В сообщении от 5 Апрель 2006 21:38 Mad Cat написал(a):
В одном из фалов (Form.с) есть такая процедура:
static void RefigureLocations(w)
FormWidget w;
Это объявление функции в стиле Kernigan-Ritchie. Новым gcc такое не
поддерживается замени ее на (и без точки-запятой):
static void RefigureLocations(FormWidget w)
{
if (w->form.no_refigure) {
w->form.needs_relayout = True;
}
else {
(*((FormWidgetClass)w->core.widget_class)->form_class.layout)
( w, w->core.width, w->core.height ); //мат на вот эту строчку
w->form.needs_relayout = False;
}
}
Компилятор на неё ругается.
Form.c: In function `RefigureLocations':
Form.c:240: Error: error: too few arguments to function
--
Max
Там подобных объявлений море. Но компилятор их "проглатывает".
Проблема возникает в двух вызовах:
1. (*((FormWidgetClass)w->core.widget_class)->form_class.layout)( w,
w->core.width, w->core.height );
2. (*((ViewportWidgetClass)w->core.widget_class)->form_class.layout)(
(FormWidget)w, w->core.width, w->core.height );
Оба вызова неудачны из за недостаточного количества аргументов функций.
Вот мне и интересно каких параметров этим функциям не хватает. Функции
из библиотек пакета libxaw7-dev.
Если кто писал что либо с этими либами - ткните где почитать...