假设我有这样一段代码:在阵列中存储的临时值与多个变量
int foo(int a, int b, int c)
{
int tmp1, tmp2, tmp3;
...
some_calculation0(&tmp1, a, b); // stores the result in tmp1
some_calculation1(&tmp2, b, c);
some_calculation2(&tmp3, tmp1, tmp2);
return tmp3;
}
最近我会写为:
int foo(int a, int b, int c)
{
int tmp[3];
...
some_calculation0(&tmp[0], a, b); // stores the result in tmp[0]
some_calculation1(&tmp[1], b, c);
some_calculation2(&tmp[2], tmp[0], tmp[1]);
return tmp[2];
}
有什么理由不做这样的事情?有人会认为这是不好的做法吗?
在这种情况下,tmp
值实际上是一串计算中的中间值,因为所有函数都将其结果返回到通过引用传递的其中一个输入变量中。对我来说,将它们组合在一起是有道理的,但是鉴于迄今为止的回应反对它,我没有任何反对使用单独的变量。
你为什么要这样做? – ouah