我正在查看我正在使用的硬件接口的一些示例 C++ 代码,并注意到许多类似以下内容的语句:
if ( NULL == pMsg ) return rv;
我确信我听过人们说将常数放在第一位是个好主意,但这是为什么呢?这只是为了让您在有一个很大的语句时可以快速看到您正在比较的内容还是还有更多内容?
阻止你写:
if ( pMsg = NULL ) return rv;
误打误撞。然而,一个好的编译器会警告您这一点,因此大多数人不会使用“常量优先”方式,因为他们发现很难阅读。
这样就不会混淆比较 (==) 和赋值 (=)。
如您所知,您不能分配给常量。如果你尝试,编译器会给你一个错误。
基本上,这是一种防御性编程技术。为了保护自己免受自己的伤害。
阻止你写:
误打误撞。然而,一个好的编译器会警告您这一点,因此大多数人不会使用“常量优先”方式,因为他们发现很难阅读。
这样就不会混淆比较 (==) 和赋值 (=)。
如您所知,您不能分配给常量。如果你尝试,编译器会给你一个错误。
基本上,这是一种防御性编程技术。为了保护自己免受自己的伤害。