gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:36:53 26 4
gpt4 key购买 nike

这有什么区别:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com