c++ 中 if(pointer) 与 if(pointer != NULL) 之间的区别,cpplint 问题

2023-12-28

我已经检查过这个帖子了我可以使用 if (pointer) 代替 if (pointer != NULL) 吗? https://stackoverflow.com/questions/17772103/can-i-use-if-pointer-instead-of-if-pointer-null以及网上的一些其他帖子。

但它并没有说明两个陈述之间有任何区别。

Problem:当我在 cpp 代码上运行 cpplint.py 时,我发现检查指针是否为 NULL 的问题。 我更喜欢使用简单的方法进行检查

if(pointer)         //statement1

but cpplint说你应该检查一下

if(pointer != NULL)        //statement2

所以我只是想知道,有什么好处吗?声明2 over 声明1?是否有一些场景声明1可能会产生问题吗?

Working:据我所知有工作上没有区别两个声明的。这只是编码风格的改变。

我更喜欢使用像声明1, 因为

  • 简单易读
  • 没有缺失的紧张感(=) 错误地超过了相等(==) 在比较中

但 cpplint 将此作为问题提出,那么我可能会错过一些好处。

Note:Java也不支持声明1.


No, if pointer实际上是指针类型没有区别,所以这里的一切都是编码风格的问题。编码风格又取决于不同社区的习惯,因此不能提供通用的建议。

我个人更喜欢第一个,因为它更短,更切题,并且避免使用虚假宏NULL.

In C NULL可以是非常不同的东西(整数或指针),并且在 C++ 中它的使用现在甚至已被弃用。你至少应该使用nullptr, there.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++ 中 if(pointer) 与 if(pointer != NULL) 之间的区别,cpplint 问题 的相关文章

随机推荐