[英]Getter function to return values of a struct in c
我正在練習 c,我想返回結構的數據以在其他位置訪問它。
假設我有這樣的事情:
typedef struct
{
int8 x;
u64 y;
u32 z;
} myData_t;
myData_t myData_g;
/*Setter*/
void WritemyData(const myData_t* data)
{
myData_g = *data;
}
如何返回存儲在全局變量中的數據以在其他位置讀取。 我可以不只是做類似的事情:
/*Getter*/
myData_t GettmyData(void)
{
return myData_g;
}
將感謝任何信息!
首先,對於這樣的事情,請考慮通過添加static myData_t myData_g;
. 現在,此 .c 文件之外的任何人都無法有意/無意地訪問它。
至於您的函數GettmyData
,它將正常工作。 但是,按值傳遞/返回結構被認為是不好的做法,因為它涉及在堆棧上制作結構的完整副本,這可能會很慢並且暫時占用不必要的內存。
這可能是更好的主意:
void get_my_data (myData_t* obj)
{
*obj = myData_g;
}
在這里,您必須記錄調用方應在調用方分配obj
指向的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.