返回一个栈中数据的技巧
struct mystruct {
int id;
int current_status;
};
struct mystruct get_stat() {
struct mystruct st;
st.id = get_current_id();
st.current_status = get_current_status();
return st;
}
上述代码中定义的函数返回一个局部变量,使用一个变量来存储返回值就不会产生问题,毕竟在接收 get_stat 函数的返回值时,栈中的数据仍旧有效。
你可以使用如下代码来调用上面定义的函数:
struct mystruct st = get_stat();
这样数据就传递到了调用者的作用范围内了,避免了动态分配内存带来的损耗,是一个很好的技巧。