Вот такая ситуация:
#include <stdlib.h>
#define HANDLER_N 8
typedef void (*handler_t)(object_t *object);
typedef struct
{
int x, y;
size_t handler_i;
handler_t handler[HANDLER_N];
} object_t;
int main()
{
return EXIT_SUCCESS;
}
$ make main cc main.c -o main main.c:5: error: expected ‘)’ before ‘*’ token main.c:12: error: expected specifier-qualifier-list before ‘handler_t’ make: *** [main] Error 1 $Я вижу только такое решение: объявление типа handler_t убрать,
а в структуре вместо него использовать void *.
Есть ли более правильное решение?