メインコンテンツ

AUTOSAR C++14 Rule A2-13-5

Hexadecimal constants should be upper case

説明

ルール定義

Hexadecimal constants should be uppercase.

根拠

16 進法では数字 0 ~ 9 と文字 A ~ F を使用します。16 進定数の定義で英大文字のみを使用すると、ソース コードの整合性、読みやすさ、保守の容易さを維持できます。

16 進定数で大文字と小文字が混在していると、開発プロセスでの混乱の原因となる可能性があり、さらにはバグにつながる可能性があります。常に大文字の 16 進定数のみを使用するよう強制することで、この問題が発生する可能性が低くなります。

トラブルシューティング

ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

次の例では、AUTOSAR ルール A2-13-5 の Polyspace 実装を示します。

#include <cstdint>

int main(void)
{
  std::int16_t a = 0x0f0f; //Noncompliant
  std::int16_t b = 0x0f0F; //Noncompliant
  std::int16_t c = 0x0F0F; //Compliant
  return 0;
}
 

この例では 3 つの 16 進定数が定義されます。3 つの定数の値はすべて同一ですが、そのうちの 2 つの定義には小文字が使用されています。16 進定数 a と b の定義で使用されている文字が大文字のみではないため、Polyspace はこのルールに非準拠であるとして、これらの定義にフラグを設定します。16 進定数 c の定義では大文字のみが使用されているため、Polyspace はこの定義に対し、このルールに非準拠であるというフラグを設定しません。

チェック情報

グループ: 構文規則
カテゴリ: Advisory、Automated

バージョン履歴

R2019a で導入