我有一个定义如下的结构:
typedef struct {
char (*behave) (int*);
} BEHAVIOURSTRUCT;
此结构在 .h 文件中定义,并包含在 .c 文件中 我有一个全局变量(MAX_BEHAVIOURS 定义为 3):
BEHAVIOURSTRUCT bhvr[MAX_BEHAVIOURS];
在初始化中我尝试分配它,但在这里我收到警告:“分配来自不兼容的指针类型”
void init() {
bhvr[0].behave = BHVR_line_follow; // here
...
}
我试图分配的功能
void BHVR_line_follow(int *currstate){
....
}
听起来我在结构中的声明和指向函数的指针不是来自同一个构建,但在我看来它们是。但很可能我错了。