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