このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C:2023 Rule 14.2
説明
ルール定義
A for loop shall be well-formed
根拠
for ループは柔軟なループ機能を提供します。制御ステートメント内のループ カウンターの初期化、終了およびインクリメントや、ループ本体内の任意の場所でのループ カウンターのインクリメントの他にも演算を実行できます。ただし、制限されたループ形式を使用すると、コードのレビューと解析が容易になります。
Polyspace 実装
for ループは、3 つの句とループ本体を含む制御ステートメントで構成されます。チェッカーは以下の場合に違反を報告します。
最初の句に初期化が含まれていない (句が空の場合を除く)。チェッカーは、
forループの最初の句で最後に代入される変数をループ カウンターと見なします。最初の句が空の場合、チェッカーは 3 番目の句でインクリメントまたはデクリメントされる変数をループ カウンターと見なします。2 番目の句に、ループ カウンターを含む比較演算が含まれていない。
3 番目の句に、ループ カウンターのインクリメントまたはデクリメント以外の (コンマで区切られてインクリメントまたはデクリメントから分離された) 演算が含まれている。
ループ カウンターに整数ではないデータ型、またはポインター型が使用されている。
ループ カウンターがループ本体内でインクリメントされる。
Polyspace® は、2 番目の句にループ カウンターを含む二項演算が含まれている場合、違反を報告しません。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
| グループ: 制御ステートメントの式 |
| カテゴリ: 必要 |
| AGC カテゴリ: Readability |
バージョン履歴
R2024a で導入