while(1)のbreakの注意点
こんにちは皆さん。今回はC言語のwhile(1)の抜け出し方に言及します. 私の場合はbreak文をif文で囲ってwhile文の脱出をしてますが, たまにそれができないことがわかりました. ですので今回はその原因の一つをここに記します.項目は以下の通りです.
- 割り込み処理のタイマーが原因
- エラー文として処理されない
割り込み処理のタイマーが原因
原因の一つとして割り込み処理のタイマーが原因です. 理由はわかってませんがタイマーを追加するとなぜか関数内のwhile文から脱出できないことがわかりました. 私が使っているCPUはRenesas ElectronicsのRX631のプログラムではCMT0 やCMT1というタイマーがありまして, ここのタイマーをいじってた後にこのブログをかいてます。
エラー文として処理されない
このタイプの問題はエラー文として開発環境のパネルに表示されないんです. 自分はロボットにプログラミングをしている最中にこの問題を発見しました. したがってプログラムとしての文法が間違ってなくても, 見えないエラーがあるということです. これはやっかいです. 注意しましょう.
終わりに
今回はC言語のwhile(1)の抜け出し方に言及しました. 私の場合はbreak文をif文で囲ってwhile文の脱出をしてますが, たまにそれができないことがわかりました. プログラミングのエラー文にはこのようなパネルに表示されないケースも起こるということがわかりました.