MISRA C:2023 Dir 4.5
Identifiers in the same name space with overlapping visibility should be typographically unambiguous
R2024a 以降
説明
命令の定義
Identifiers in the same name space with overlapping visibility should be typographically unambiguous 1 .
根拠
ここでの「明確」の意味は、ソース コードが記述されているアルファベットと言語によって異なります。文字列として類似した識別子を使用すると、識別子が紛らわしくなる可能性があります。
ラテン アルファベットを英単語で使用する場合は、少なくとも、識別子を次の要素により区別することは避けてください。
小文字とそれに対応する大文字との交換。
アンダースコア文字の有無。
文字
O
と数字0
との交換。文字
I
と数字1
との交換。文字
I
と文字l
との交換。文字
S
と数字5
との交換。文字
Z
と数字2
との交換。文字
n
と文字h
との交換。文字
B
と数字8
との交換。2 文字
rn
と 1 文字m
との交換。
Polyspace 実装
チェッカーは、上記文字の違いがあるだけで同じスコープ内の識別子にフラグを設定します。Polyspace® は、do
、for
、switch
、および while
で始まるマクロ内で定義された識別子を無視します。
2 つの識別子がそれぞれ異なるスコープ内にある場合、それらの識別子の使用はあいまいではありません。Polyspace は、それぞれ異なるスコープ内にある識別子に対してこのルールの違反を報告しません。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
例
チェック情報
グループ: Code design |
カテゴリ: 推奨 |
AGC カテゴリ: Readability |
バージョン履歴
R2024a で導入
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.