C and C++


LANG.PREPROC.DEFINE : Use of #define

Summary

A use of the #define preprocessor directive.

Many coding standards forbid the use of #define because it makes code harder for human readers to understand.

Properties

Class Name Use of #define
Significance style
Mnemonic LANG.PREPROC.DEFINE
Categories
CWE CWE:710 Improper Adherence to Coding Standards
JSF++ JSF++:29 The #define pre-processor directive shall not be used to create inline macros. Inline functions shall be used instead.
  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.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Use of #define"

Example

#define TAXI 1729   /* 'Use of #define' warning issued here */

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.