Прежде всего - это ужасный код, не делайте этого.
Во-вторых - скомпилируйте свой код с предупреждениями компилятора, чтобы компилятор мог сказать вам, где вы можете ошибаться. Конечно, вам нужен правильный компилятор C (а MSVC нет, если вы его используете). GCC скажет вам:
a.c:15:10: warning: function called through a non-compatible type
Но, чтобы ответить на ваш вопрос: вы используете неверный тип функции: вы используете тип функции void ()
; но вам нужно void (const char*, float)
. Итак, попробуйте:
((void(*)(const char*, float))SetConsoleFloat)(sSkelModelStencil,2);
вместо существующей строки 15. Для ясности также целесообразно отделить приведение типов от определений типов функций:
typedef void (*scf_function_t)(const char*, float);
раньше, а затем:
((scf_function_t) SetConsoleFloat)(sSkelModelStencil,2);
но, опять же, на самом деле нет веской причины делать это во-первых.