繁体   English   中英

if(varName)和if(varName!= NULL)有什么区别?

[英]What's the difference between if(varName) and if(varName!=NULL)?

这有什么区别:

if( varName != NULL ){
  // Do something
}

和:

if( varName ){
 // Do something
}  

我的意思是,处理速度是否有所不同? 还是只有更好的表现?

PD:我正在与C合作。

在性能方面没有差异,但意图差异可能很大。 假设NULL宏定义为(void *) 0 ,则此代码:

if( varName != NULL ) {
   // Do something
}

强制varName必须是指针对象。 例如,以下代码将发出错误消息:

int varName = 0;
if ( varName != NULL ) {
    // Do something
}

错误:指针与整数之间的比较

因此,尽管这种做法的价值是可以商讨的,因为这两种形式都是惯用的,所以这种做法可以被认为是一种防御性编程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM