gpt4 book ai didi

c - 在 C : ok or bad? 中将 const struct 成员作为非 const 返回

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

const struct 返回非 const 数据成员指针是正确的还是被认为是不好的做法?如下所示返回非 const 指针有什么危险?

widget_t * widget_child(const widget_t * parent)
{
if (!parent)
return NULL;

return parent->child;
}

最佳答案

是否可以接受从 const 限定的 struct 返回特定的非 const 数据成员完全取决于它是其中一部分的数据结构。
这在法律上并没有错,关于这个问题,C 不能再多说什么了。
作为程序员,您(希望)知道并理解语义是值得信赖的(出于必要性/为了效率)选择正确的。

即使它 const 限定的,C 也故意允许您覆盖它如果您确定自己是正确的并接受后果。 此覆盖采用显式强制转换的形式。

关于c - 在 C : ok or bad? 中将 const struct 成员作为非 const 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888930/

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