【发布时间】:2015-05-04 08:43:17
【问题描述】:
我不确定是否应该在此处或其他 StackExchange 站点询问此问题,但我会继续……如果此处不适合,请迁移)
我正在审查代码。要求是调用函数nnumber 次,参数范围为0 到n。但如果n大于7,则只调用该函数7次。
我的同事是这样实现的:
void ExecuteFunctions(U8 count)
{
if(count > 0) oprA(0);
if(count > 1) oprA(1);
if(count > 2) oprA(2);
if(count > 3) oprA(3);
if(count > 4) oprA(4);
if(count > 5) oprA(5);
if(count > 6) oprA(6);
if(count > 7) oprA(7);
}
我修改为:
void ExecuteFunctions(U8 count)
{
for(U8 loopcnt = 0; loopcnt < count; loopcnt++)
{
oprA(loopcnt);
if(loopcnt == 7)
{
// We don't want to execute this function more number of times if it is already executed 7 times
break;
}
}
}
但我仍然觉得可能有更好的方法并且需要您的意见。 (如果这里离题,也请迁移)
【问题讨论】:
-
让编译器对其进行优化。它可能会为你展开循环。
-
@AustinMullins 好主意,但优化已关闭。你可以说,它现在对我来说就像一个编程谜题!
-
可读性或性能优化?
-
您可以将
loopcnt < 8条件移动到循环条件中。它不会对其进行优化,但会使其更紧凑。 -
问题不清楚:
0到7已经是8次了。n是否包含在范围内?您的代码和您同事的代码似乎都没有实现规范。
标签: c code-readability