[英]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.