Мне нужно объявить структуру (typedef'd) и ссылку на функцию (typedef'd) при старом C. Это мой код:
typedef void (*monitor_calback)(monitor_data*, short int, short int, void*);
typedef struct
{
int port;
unsigned char port_state;
monitor_calback cb_high[8];
void *cb_high_data[8];
monitor_calback cb_low[8];
void *cb_low_data[8];
} monitor_data;
Но, конечно, он не компилируетсяпотому что мы не знаем о структуре, когда объявляется ссылка на функцию.
Я получил это, но это выглядит немного грязно и немного сложно для чтения.
struct _monitor_data;
typedef void (*monitor_calback)(struct _monitor_data*, short int, short int, void*);
typedef struct _monitor_data
{
int port;
unsigned char port_state;
monitor_calback cb_high[8];
void *cb_high_data[8];
monitor_calback cb_low[8];
void *cb_low_data[8];
} monitor_data;
Есть лиЕсть ли лучшие способы сделать это?