2014-05-16 21 views
1

在我的代码有值得用一个常量替换开关中的参数吗?

switch (cd->op) 
{ 
... 
} 

,我想知道我是否应该做

CalcWizConsts::eqOps thisOp = cd->op; 
switch (thisOp) 
{ 
... 
} 
+0

什么类型是op?制作一个局部变量不会使得一个常量。 – griotspeak

+1

当真的不需要时,为什么要在范围中注入另一个标识符名称? –

+3

您标记了“优化”。如果你认为这种改变会加速你的代码,那么你就是在浪费你的时间。不成熟的优化是万恶之源。甚至不要考虑这样做,直到它成为一个问题,几乎肯定不会。 –

回答

8

switch的参数将只计算一次,所以没有必要将其存储在一个临时第一。没有性能差异,您也不必担心要更改case子句中的某个子句的值。我能想到的首先分配给变量的唯一原因是为了使代码更具可读性,如果表达式冗长。

+0

将其分配给本地也可以给它一个本地有意义的名称,使代码更自我评论。 –

+0

它也可以使它*少*可读。就像这里的情况一样,'thisOp'不如原来的'cd-> op'。 –