跳到主要内容

返回一个栈中数据的技巧

    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();

这样数据就传递到了调用者的作用范围内了,避免了动态分配内存带来的损耗,是一个很好的技巧。