[C++] 249 FLTK : Fl_Menu_Itemの書式

[M1 Mac, Monterey 12.6.3, clang 13.0.0, FLTK 3.8.1, ChatGPT Plus, NO IDE]

SFTP通信アプリのメンテナンスです。即時ファイル移動ができないiCloudの代替ツールとして開発しています。PC間のファイル移動が瞬時にできます(Windows機とはSamba接続)。

アプリに新たなPCを登録する際、Fl_Menu_Itemの書き方を間違えたためにプルダウンメニュークリック時に落ちるようになってしまいました。以前からクセのある書式にトラブルの可能性を感じていたのでまとめておきます。

Fl_Menu_ItemオブジェクトはArrayを作成する際、最後にヌルポインタを入れることでArrayの終了が分かるようになっています。これにより要素数を扱わずに済みます。要素数を入れても問題はないですが、最後のヌルポインタもカウントした数値を使用します。

// 要素数を使わない場合
Fl_Menu_Item pc_type[] = {
        {"Mac mini Intel"},
        {"MacBook Air M1"},
        {"MacBook Intel"},
        {"Windows11PC"},
        {"Windows10PC"},
        {"LinuxPC"},
        {0}
};

// 要素数を使う場合
Fl_Menu_Item pc_type[7] = {
        {"Mac mini Intel"},
        {"MacBook Air M1"},
        {"MacBook Intel"},
        {"Windows11PC"},
        {"Windows10PC"},
        {"LinuxPC"},
        {0}
};

// 最後のヌルポインタは省略可能(見た目では数が合わない)
Fl_Menu_Item pc_type[7] = {
        {"Mac mini Intel"},
        {"MacBook Air M1"},
        {"MacBook Intel"},
        {"Windows11PC"},
        {"Windows10PC"},
        {"LinuxPC"}
};