☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

不应使用常量 0 表示空指针

14.12 ID_zeroAsPtrValue
目录 › next › previous

在 C 代码中应使用 NULL 表示空指针,在 C++ 代码中应使用 nullptr 表示空指针。

标准允许 0、'\0'、false、1 - 1 等值为 0 的常量表达式作为空指针常量,但易与非指针混淆,不利于阅读和维护。

示例:

int* p;
void foo(int*);

p = 0;   // Non-compliant
foo(0);  // Non-compliant

应改为:

p = NULL;      // Compliant in C
foo(nullptr);  // Compliant in C++

相关

ID_oddPtrBoolAssignment ID_oddPtrCharAssignment ID_oddPtrBoolComparison ID_oddPtrCharComparison

依据

ISO/IEC 9899:1999 6.3.2.3(3) ISO/IEC 9899:2011 6.3.2.3(3) ISO/IEC 14882:2003 4.10(1) ISO/IEC 14882:2011 4.10(1)

参考

C++ Core Guidelines ES.47 MISRA C 2012 11.9 MISRA C++ 2008 4-10-2
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.