gpt4 book ai didi

c - 在 C 中是否有修改结构的惯用最佳实践?

转载 作者:行者123 更新时间:2023-11-30 20:54:28 26 4
gpt4 key购买 nike

假设您想在 C 中创建一个函数 f 来转换某些结构,例如 struct s1

现代 C 中是否有关于函数 f 接收/返回结构体的副本指针<是否更好的最佳实践/习惯用法?/strong> 到结构体?

例如,以下是 f 的一些可能的类型签名(我确信我还缺少更多):

struct s1 f(struct s1)
struct* s1 f(struct* s1)
void f(struct *s1)

一般来说,人们是否会尝试避开其中一些类型签名而不是其他类型签名?

最佳答案

最后一个是惯用的。

C 语言人员非常重视效率,因为这通常是他们使用 C 而不是高级语言的原因,并且传递指针比将整个结构插入堆栈更快。就地修改结构同样比获取副本、分配堆内存并返回它要快得多。另外,C 没有很好的方法来区分深拷贝和浅拷贝,因此 copy 方法会导致指针成员会发生什么情况的问题。

但是您将在真实的 C 代码中看到所有三种方法。

关于c - 在 C 中是否有修改结构的惯用最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40090808/

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