我注意到我们的一些代码中存在以下语法有一段时间了:
if( NULL == var){
//...
}
or
if( 0 == var){
//...
}
和类似的事情。
有人可以解释一下为什么写这个的人选择这个符号而不是常见的符号var == 0
way)?
这是风格问题,还是以某种方式影响性能?
这是一种避免此类错误的机制:
if ( var = NULL ) {
// ...
}
如果您将变量名写在右侧,编译器将能够捕获某些错误:
if ( NULL = var ) { // not legal, won't compile
// ...
}
当然,如果变量名出现在等号两侧,那么这将不起作用,并且有些人觉得这种样式没有吸引力。
Edit:
正如埃文在评论中提到的,如果您启用警告,任何像样的编译器都会警告您,例如,gcc -Wall
将为您提供以下信息:
warning: suggest parentheses around assignment used as truth value
您应该始终在编译器上启用警告,这是查找错误的最便宜的方法。
最后,正如 Mike B 指出的那样,这是一个风格问题,不会影响程序的性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)