, имеющее эту проблему на Mac с gcc 4.0.1 build 5370, XCode 2.5. Фрагмент кода:Ошибка: неверное преобразование из 'void (*) (...)' to 'void (*)()'
есть объявленная функция, второй параметр вызывает проблему:
void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
назвав его так:
typedef void (*FuncPtr)();
FuncPtr func = some_function_pointer;
ffi_call(null, func, ...);
причиной ошибки на третьей строке. Похож, что 'void func (void)' отличается от 'void func()' для gcc 4.0.1
Любые идеи о любом gcc-переключателе или просто gcc-обновлении помогли бы? Спасибо за помощь Хонза Б.
Спасибо за ответ. К сожалению, код скомпилирован как C. Я не могу изменить FuncPtr. Должна быть возможность скорее изменить объявление функции. Но я считаю, что некоторые конфигурации или gcc-обновления (например, с помощью сборки 5484) помогут. – 2009-09-29 15:41:47
'void func();' является прототипом для функции, принимающей неопределенное, но фиксированное количество аргументов; 'void func (...);' является прототипом для функции, принимающей переменное число аргументов. – pmg
Но декларация отличается другим способом: недействительного (* PTR)() недействительных (* PTR) (аннулируется) которые IMHO как функции ш/о в параметре Я. В декларации нет .... – 2009-09-29 15:57:09