古い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;
これを行うためのより良い方法はありますか?