我正在用C语言编写一个shell.虽然我不希望其他人使用它,但我还是想练习编写可维护且组织良好的代码.我在一些函数中注意到了以下模式,所以在它固化之前,我希望它能够经过全面审查.
例如,请考虑以下功能:
int foo(int param...) {
// declare variables
struct bar *a, *b, *c;
// do some work
a = bar_creator();
b = bar_modifier(a);
c = bar_modifier(b);
// cleanup
free(a);
free(b);
free(c);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
注意事项:
三个阶段:声明,启动/修改,清理
新分配的结构通常从函数返回,作为其他对象的修改副本
不需要大量的对象,因此内存使用不是问题
目前,这三个部分相对不同.这允许我匹配第一个和最后一个部分并确保一切都被考虑在内.现在我想知道一个更好的风格是否可以在不需要时立即解除分配.这样做的动机可能是最小化代码部分有意义的上下文.
您对资源重新分配的方法是什么?给定策略的优点是什么?
澄清关于函数行为的任何混淆:
/**
* returns a newly created bar
*/
struct bar *bar_creator();
/**
* takes a bar, and returns a _new_ copy of it that may have been modified.
* the original is not modified.
*/
struct bar *bar_modifier(struct bar *param);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1954 次 |
| 最近记录: |