这有什么区别:
if( varName != NULL ){
// Do something
}
和
if( varName ){
// Do something
}
我的意思是,在处理速度方面有区别吗?或者只是表现更好?
PD:我正在和C合作。答案 0 :(得分:3)
在性能方面没有区别,但 intent 的差异可能很大。假设NULL
宏定义为(void *) 0
,则此代码为:
if( varName != NULL ) {
// Do something
}
强制varName
必须是指针对象。例如,以下代码将发出错误消息:
int varName = 0;
if ( varName != NULL ) {
// Do something
}
错误:指针和整数之间的比较
因此,这种做法可能会被视为一种防御性编程,虽然它的价值是可以讨论的,因为这两种形式同样是惯用的。