繁体   English   中英

C,指向结构中函数的指针,警告“从不兼容的指针类型赋值”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM