gpt4 book ai didi

c - 初始化代码放在哪里更好,在循环之前还是在循环内部?

转载 作者:太空狗 更新时间:2023-10-29 17:00:42 25 4
gpt4 key购买 nike

抱歉,如果这是一个愚蠢的问题:-)

背景

我有这样的遗留代码:

struct {
int field1;
int field2;
int field3;
int field4;
... many many fields
} myStruct;


while (something) {
initialzationFunction(&myStruct);

// ...change fields of myStruct and do stuff.
}

while 循环的每次迭代都需要将 myStruct 初始化为某个值,假设为零。initialzationFunction 将 myStruct 的所有字段初始化为零。

问题

将 initialzationFunction 保留在 while 循环中是否很好,还是在循环之前调用一次更好,让程序员在碰巧更改这段代码时“手动”初始化他们需要的东西。

编辑:不幸的是,myStruct 是一个全局变量,因此不能将其设为自动变量,除非我想将它作为参数传递给大量使用它的遗留函数。

我的想法

  • 只需调用 initialzationFunction() 即可防止出现错误,以防有人修改代码而忘记稍后初始化 myStruct。
  • 查看初始化了哪些特定字段可能会提供更多信息。
  • 如果稍后在 while 循环中仅修改了几个字段,则调用初始化所有字段的 initialzationFunction() 是多余的。

你会怎么做?

最佳答案

如果您要将代码留给其他人维护,并且该代码不是经过验证的热点,请每次都进行初始化,因为其他人引入的错误会更少。

如果代码是经过验证的关键热点,则初始化一次,然后清理代码。

过早的优化是万恶之源

关于c - 初始化代码放在哪里更好,在循环之前还是在循环内部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12367355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com