[英]C, pointer to function in struct, warning “assignment from incompatible pointer type”
我有一个定义如下的结构:
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){
....
}
听起来我在结构中的声明和指向函数的指针不是来自同一个构建,但在我看来它们是。 但很可能我错了。
这是您的函数和所需的函数类型,并排:
void BHVR_line_follow(int *currstate)
char (*behave) (int*)
所需的函数类型采用int*
并返回一个char
。
你的函数需要一个int*
并返回void
(什么都没有)。
总结一下, BHVR_line_follow
的返回类型是错误的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.