![](/img/trans.png)
[英]What's the difference between VARNAME_T and VARNAME_P in c/c++
[英]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.