このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C:2012 Rule 5.3
An identifier declared in an inner scope shall not hide an identifier declared in an outer scope
説明
ルール定義
An identifier declared in an inner scope shall not hide an identifier declared in an outer scope 1 .
根拠
2 つの識別子が同じ名前でスコープが異なる場合、内側のスコープの識別子は外側のスコープの識別子を隠蔽します。識別子の名前の使用はすべて内側のスコープの識別子を参照します。この動作により、開発者がスコープを追跡しておかなければならなくなり、コードの可読性は低下します。
Polyspace 実装
Polyspace® は最初の 63 文字の間に相違点があれば 2 つの名前を別個であると見なします。C90 では、相違点は最初の 31 文字の間に存在しなければなりません。C90 ルール チェックを使用するには、オプション [C 標準バージョン] (-c-version)
で値 c90
を使用します。比較する文字数は、オプション -code-behavior-specifications
を使用して変更できます。-code-behavior-specifications
を参照してください。
非表示の識別子が標準ライブラリ ヘッダーで宣言されており、そのヘッダーを解析で指定していない場合は、この問題が表示されません。標準ライブラリ ヘッダーで宣言された識別子との競合の可能性を確認するには、Polyspace 解析でヘッダーのコンパイラ実装を指定します。Polyspace 解析への標準ライブラリ ヘッダーの指定を参照してください。
レポート内の追加のメッセージ
Variable XX hides variable XX (FILE line LINE column COLUMN).
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
グループ: 識別子 |
カテゴリ: 必要 |
AGC カテゴリ: 推奨 |
バージョン履歴
R2014b で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.