[英]Function name for returning a struct
我想创建一个函数,在其中更改一个已经存在的结构。 因此,该函数的返回值应为struct。 如果我想要一个int
作为返回值,则调用函数“ int example()
” ...如果我想返回一个结构,如何调用该函数? 因为已经使用了“ struct whatever
”,所以我已经采用“ struct whatever
”来创建一个。
如果要让函数修改现有结构,则应通过指针传递该结构:
void modify_thing(struct whatever *thing);
如果要返回该结构的修改后的副本 ,则可以按值返回该结构:
struct whatever edit_thing(const struct whatever *input);
注意,通过指针而不是通过值传递结构变量通常更有效。
按值传递结构将导致编译器在内存中建立1个或多个只能用于该功能的保留区。
这些存储区中的每一个都由编译器插入对memcpy()的调用来操纵。
最好将一个指针传递给该结构,然后返回一个简单的指示结构更新操作成功/失败的指示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.