我需要聲明(typedef定義)結構和疼痛老C的(typedef定義)函數引用這是我的代碼:聲明結構和功能的引用,利用對方
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;
有沒有更好的方法來做到這一點?
不要看起來凌亂。差異非常小。 – Jon 2011-03-05 13:29:06
您應該在monitor_calback定義之前(在第二個代碼片段中)添加'struct _monitor_data;'行。 – 2011-03-05 13:32:35