不应将 NULL 当作整数使用
10.2.8 ID_oddNullAssignment
标识符 NULL 由实现定义,在 C++ 语言中往往等同于常量 0,但 NULL 只应该用来表示空指针,否则不利于阅读和维护。
被当作整数使用的 NULL 也很可能意味着某种错误。
示例:
const int i = NULL; // Non-compliant
const char c = NULL; // Non-compliant
void foo(bool x = NULL); // Non-compliant
应改为:
const int i = 0; // Compliant
const char c = '\0'; // Compliant
void foo(bool x = false); // Compliant
依据
ISO/IEC 14882:2003 C.2.2.3(1)-implementation
ISO/IEC 14882:2011 C.3.2.4(1)-implementation
ISO/IEC 14882:2017 C.5.2.7(1)-implementation
参考
MISRA C++ 2008 4-10-1