这有什么区别:
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
}
error: comparison between pointer and integer
因此,这种做法可能被认为是一种防御性编程,尽管它的值(value)是相当值得讨论的,因为两种形式都是同样惯用的。
关于c - if(varName) 和 if(varName!=NULL) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808539/