main文を使って実験する。
部品だけを実装したらわからないので、Main文を勝手に実装して挙動確認
pushしても、pushされた配列が0にならなくても良いのか疑問
r演算子を使ってトリッキーな  条件判定がわかりずらかった。条件が真だった場合!を使ってFalseにしorで繋いだ条件を判定するようにするのは一般的な書き方なのか？疑問。TODOそれよりもわかりやすい条件 判定を考えてみる
チェック機能を分離してみた。関数マクロを作るとなかなかすっと理解できないことがわかった
マクロで構造体に関数ポインタ経由で関数を登録するのを他のコードを読んだ時に初見で理解できるとは思えない。
Merge remote-tracking branch 'origin/master'