我完全陷入了困境。我有以下代码:
typedef void (*TPFN_ACC)(void);
typedef char (*TPFN_EVE)(void);
typedef struct {
int idDestino;
char * nombre;
TPFN_EVE evento;
TPFN_ACC accion;
} TRANSICION;
然后我这样做:
TRANSICION transiciones_Stopped[] = {
{UPLEFT, "t_Stopped_to_Up_Left", ev_up_left, acc_up_left},
{0, 0, 0, 0}
};
我收到了这个警告:
warning: initialization from incompatible pointer type
你能帮我吗?
提前致谢。
答案 0 :(得分:2)
你有这个:
void ev_up_left();
char acc_up_left();
在您的TRANSICION
结构中,evento
类型的成员char (*)(void)
初始化为ev_up_left
类型void (*)(void)
。
accion
类型void (*)(void)
的成员acc_up_left
与char (*)(void)
类型{{1}}初始化相同。
您可能错误地交换了两种类型/两种结构成员。
答案 1 :(得分:1)
更改
typedef void (*TPFN_ACC)(void);
typedef char (*TPFN_EVE)(void);
到
typedef void (*TPFN_EVE)(void);
typedef char (*TPFN_ACC)(void);