C and C++


LANG.PREPROC.MDC : Macro Defines Constant

要旨

A macro is defined (with #define) to a simple literal constant.

プロパティ

クラス名 Macro Defines Constant
日本語クラス名 Macro Defines Constant
クラス分類 スタイル (style)
ニーモニック LANG.PREPROC.MDC
カテゴリー
CWE CWE:1076 Insufficient Adherence to Expected Conventions
JSF++ JSF++:30 The #define pre-processor directive shall not be used to define constant values. Instead, the const qualifier shall be applied to variable declarations to specify constant values.
  JSF++:31 The #define pre-processor directive will only be used as part of the technique to prevent multiple inclusions of the same header file.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Macro Defines Constant"

#define TAXI 1729     /* 'Macro Defines Constant' warning issued here */
#define MYSTR "hello" /* 'Macro Defines Constant' warning issued here */
#define INDIR TAXI               /* not a simple literal constant */
#define TWO 1+1                  /* not a simple literal constant */
#define PARENS (1)               /* not a simple literal constant */

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

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