指针与空指针不应比较大小
14.19 ID_oddPtrZeroComparison
指针与空指针比较大小往往意味着逻辑错误,而且只有指向同一数组或对象的指针才能比较大小,否则会导致标准未定义的行为,空指针不指向任何数组或对象,故指针与空指针不应比较大小。
指针与空指针之间只应使用 == 或 != 比较,其他比较运算符均不符合要求。
本规则是 ID_illPtrDiff 的特化。
示例(设 p 为指针):
p < NULL // Non-compliant, may be always false
p >= 0 // Non-compliant, may be always true
p > nullptr // Non-compliant, use p != nullptr instead
p <= 0 // Non-compliant, use p == 0 instead
p == NULL // Compliant
p != nullptr // Compliant
相关
依据
ISO/IEC 9899:1999 6.5.8(5)-undefined
ISO/IEC 9899:2011 6.5.8(5)-undefined