函数出参谁来负责初始化

反正函数不读出参,有没有清零又有什么关系。
■网友
清零没用啊,你扔过去人家根本不管你清零不清零啊,
■网友
你的意思是不是这样:int foo1(struct xxx *p){ ... memset(p, 0, sizeof(struct xxx)); ... if (error) { return -1; } ... p-\u0026gt;a = ...; p-\u0026gt;b = ...; return 0;}int foo2(struct xxx *p){ ... //memset(p, 0, sizeof(struct xxx)); ... if (error) { return -1; } ... p-\u0026gt;a = ...; p-\u0026gt;b = ...; return 0;}int main(int ac, char **av){ struct xxx a, b; foo1(\u0026amp;a); memset(\u0026amp;b, 0, sizeof(b)); foo2(\u0026amp;b); return 0;}我个人喜欢 foo2()风格。
■网友
听不懂你的术语,是指返回一些内容的参数?一般函数责任,你要看是接口还是内部使用,前者需要函数做工作,后者靠单元测试保证比较合理


    推荐阅读