-2

私の arduino スケッチでは、署名付きの関数ポインターの配列が必要void foo()です。Linuxでコマンドラインユーティリティを使用inoしています(内部でavr-g ++を使用しています)。

ただし、配列の定義中に非常に奇妙なエラーが発生します。

エラー:

error: invalid conversion from ‘void (* (*)())()’ to ‘void (*)()’

このコードで

void (*mode_setup[])(void) = {
    &show_time_setup,
    &set_time_setup,    
    &set_alarm_setup,
    &set_date_setup // <-- generates 3 identical error on this line
};

私は間違っていることを理解していません... int foo[] = { 1, 2, 3 };..は完全に有効でありvoid (*foo)(void)、関数ポインタの構文です。

私は何が欠けていますか?

edit: NEVERMIND IM STUPID 関数は void foo() ではなく、fptr foo() [fptr=function pointer typedef] 人々の時間を無駄にしたことに対する心からの謝罪

4

1 に答える 1