gpt4 book ai didi

c - 样式问题 !condition agains condition == NULL

转载 作者:太空狗 更新时间:2023-10-29 17:15:29 27 4
gpt4 key购买 nike

如果您调用某个函数,并且该函数在发生错误时返回 NULL(例如,想想 malloc()fopen()),两个更好:

FILE *fp = fopen(argv[0], "r");

if (fp == NULL) {
// handle error
}

if (!fp) {
// handle error
}

这只是风格问题吗?我认为第一个更清楚更明确,但我很少用 C 编写代码 :-)。

最佳答案

我更喜欢与 NULL 进行比较,因为它清楚地表明比较的两个操作数都应该是指针。这个

(!p)

或者这个

(p == 0)

要求您一眼就知道 p 的类型是什么(整数? bool 值?)。我的观点是,所有编码都应该假设您将不得不在 9 个月后的凌晨 4 点(早上 4 点,对于那里的不眠者)进行调试。在这种情况下,一点一滴都有帮助。

哦,在测试相等性时将常量作为第一个操作数是一种很好的做法,这样如果您不小心将其转换为赋值,编译器就会中止并报错。

关于c - 样式问题 !condition agains condition == NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298997/

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