typedef R (* func_t)(A * a, B * b, C * c);

こうでしょ。RやA,B,Cは定義済みのやつにかえてるよね?