C and C++


LANG.TYPE.BASIC : 基本数値型の使用

要旨

基本型が使用されています。多くのコーディング規約ではこれらの使用を禁止し、サイズと符号を明示するために typedef を使うことを推奨しています。

プロパティ

クラス名 Basic Numerical Type Used
日本語クラス名 基本数値型の使用
クラス分類 スタイル (style)
ニーモニック LANG.TYPE.BASIC
カテゴリー
MisraC2023 MisraC2023:D.4.6 typedefs that indicate size and signedness should be used in place of the basic numerical types
Misra2012 Misra2012:D.4.6 typedefs that indicate size and signedness should be used in place of the basic numerical types
Misra2004 Misra2004:6.3 typedefs that indicate size and signedness should be used in place of the basic numerical types
AUTOSARC++14 AUTOSARC++14:A3-9-1 Fixed width integer types from <cstdint>, indicating the size and signedness, shall be used in place of the basic numerical types.
MisraC++2008 MisraC++2008:3-9-2 typedefs that indicate size and signedness should be used in place of the basic numerical types.
MisraC++2023 MisraC++2023:6.9.2 The names of the standard signed integer types and standard unsigned integer types should not be used
CWE CWE:710 Improper Adherence to Coding Standards
CERT-C CERT-C:INT01-C Use rsize_t or size_t for all integer values representing the size of an object
JSF++ JSF++:209 The basic types of int, short, long, float and double shall not be used, but specific-length equivalents should be typedef'd accordingly for each compiler, and these type names used in the code.
JPL JPL:17 Use U32, I16, etc instead of predefined C data types such as int, short, etc.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Basic Numerical Type Used"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

#include <stdint.h>
#include <stdlib.h>

int basic_int;         /* 'Basic Numerical Type Used' warning issued here */
int32_t physical_int;               /* ok */
size_t logical_size;                /* ok */
ssize_t logical_signed_size;        /* ok */

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。