gpt4 book ai didi

c if语句检查零

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:17 25 4
gpt4 key购买 nike

在c中是否推荐这样写条件

if(foo != 0) {
// do stuff
}

或者像这样

if(foo) {
// do stuff
}

我知道它们总是会产生相同的结果,但为了可读性,推荐使用哪种方法?

最佳答案

考虑 foo 可能具有的各种类型。最好的是上下文相关。

我喜欢每组中的第一个。

void *fooptr = bar();
if (fooptr) ...
if (fooptr != NULL) ...
if (fooptr != 0) ...

int fooi = bar();
if (fooi != 0) ...
if (fooi) ...

double foofp = bar();
if (foofp != 0.0) ...
if (foofp) ...

bool foobool = bar();
if (foobool) ...

int (*foofun)() = bar();
if (foofun) ...
if (foofun != NULL) ...
if (foofun != 0) ...

但要避免愚蠢的行为

if (foobool == 0.0) ...
if (fooi != NULL) ...

而且我什至没有碰 Yoda风格(尽量避免 holy war )

if (0 == foo) ...

一般来说,从积极意义上看代码 if(foo)if (foo != 0) 相比,在概念上更简单。我更喜欢 if(foo == NULL) 而不是 if(!foo)

您不认为避免否定否定不是更容易理解,不是吗?

关于c if语句检查零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29133090/

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