我需要在痛苦的旧 C 中声明一个(typedef'd)结构和一个(typedef'd)函数引用。这是我的代码:
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;
有没有更好的方法来做到这一点?