4

私は誰かの C コードを調べていて、可能性さえ知らなかった何かを発見しました。一部のケースでは、ブレーク後に別のケースが実行されるように、switch 変数が変更されています。

スイッチは割り込みハンドラ内にあるため、繰り返し呼び出されます。

switch (variable)
{
    case 1:
        some_code();
        variable = 3;
        break;

    case 2:
        more_code();
        variable = 5;
        break;

    case 3:
        more_code();
        variable = 5;
        break;

    case 4:
        my_code();
        break;

    case 5:
        final_code();
        break;

}

コードは作者の意図したとおりに動作しているようです。

これは C で保証された動作ですか? break ステートメントを実行すると、switch ステートメントの直後に実行がジャンプすると常に想定していました。他のすべてのケースをテストし続けるとは思っていませんでした。

4

1 に答える 1