gpt4 book ai didi

c++ - 分配和比较编码风格

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

<分区>

我因为在我的 C 代码中使用这样的分配和比较而受到批评(没有真正的论据):

if (!(buffer = malloc(1024))) {
// handle failure
}

代替:

buffer = malloc(1024);
if (!buffer) {
// handle failure
}

明确一点:这与 malloc() 无关,而只是关于在条件语句中进行赋值。

从美学的角度来看,我个人更喜欢之前的版本。

此外,如果我执行 git grep -E "if\(\!\(.* = .*\)\)\)\{" 以识别当前的类似结构Linux 内核源代码我在 if 条件下发现了数百个相同的赋值,例如在 net/ipv4/ipconfig.c 中:

if (!(d = kmalloc(sizeof(struct ic_device), GFP_KERNEL))) {
rtnl_unlock();
return -ENOMEM;
}

在boost中也经常使用:

 // boost/lexical_cast/detail/converter_lexical.hpp
if (!(i_interpreter.operator <<(arg)))
return false;

// boost/iostreams/filter/newline.hpp:
if ((flags_ & f_has_LF) != 0) {
if ((success = boost::iostreams::put(dest, LF)))
flags_ &= ~f_has_LF;
} else if (boost::iostreams::put(dest, CR)) {
if (!(success = boost::iostreams::put(dest, LF)))
flags_ |= f_has_LF;
}

所以 - 除了你的个人意见 - 是否有很好的技术论据支持或反对在一个陈述中进行分配和比较?

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