AUTOSAR C++14 Rule M5-0-12
Signed and unsigned char type shall be used only for the storage and use of numeric values.
説明
ルール定義
Signed and unsigned char type shall be used only for the storage and use of numeric values.
根拠
C/C++ には 3 種類の char があります。
プレーンな
charsigned charunsigned char
プレーンな char の符号属性は処理系定義です。プレーンな char は、他の型と互換的に使用することはできません。たとえば、char が符号なしであると想定し、unsigned char を使用して文字を格納するとします。また、自分が使用している実装では文字が符号付きとして解釈されるとします。このような状況では、コードが予期しない方法で動作し、診断が難しいバグにつながる可能性があります。
MISRA C++:2008 では、この 3 種類の char を異なる用途に使用するように制限を設けています。signed 型と unsigned char 型は、数値とストレージに適しています。プレーンな char は文字データに適しています。プレーンな char を使用する意図がある場合には、signed または unsigned char の使用を回避します。
このルールはこれらの char 型のさまざまな typedef (uint8_t や int8_t など) にも適用されます。MISRA C++:2008 Rule 3-9-2 を参照してください。
Polyspace 実装
Polyspace® は、プレーンな char が signed char または unsigned char に暗黙的に変換されると、このルールの違反を報告します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 式 |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入