搜索

首页  >  问答  >  正文

为什么建议在“if”语句中优先考虑常量?

我正在查看我正在使用的硬件接口的一些示例 C++ 代码,并注意到许多类似以下内容的语句:

if ( NULL == pMsg ) return rv;

我确信我听过人们说将常数放在第一位是个好主意,但这是为什么呢?这只是为了让您在有一个很大的语句时可以快速看到您正在比较的内容还是还有更多内容?

P粉066224086P粉066224086320 天前539

全部回复(2)我来回复

  • P粉226667290

    P粉2266672902024-03-26 12:47:56

    阻止你写:

    if ( pMsg = NULL ) return rv;

    误打误撞。然而,一个好的编译器会警告您这一点,因此大多数人不会使用“常量优先”方式,因为他们发现很难阅读。

    回复
    0
  • P粉180844619

    P粉1808446192024-03-26 09:11:54

    这样就不会混淆比较 (==) 和赋值 (=)。

    如您所知,您不能分配给常量。如果你尝试,编译器会给你一个错误。

    基本上,这是一种防御性编程技术。为了保护自己免受自己的伤害。

    回复
    0
  • 取消回复