次のように定義された構造体があります。
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){
....
}
その音によって、構造体での私の宣言と関数へのポインターは同じビルドからのものではありませんが、私の意見ではそうです。しかし、ほとんどの場合、私は間違っています。