【发布时间】:2020-06-27 23:09:44
【问题描述】:
我注意到以下内容并认为它效率低下。我错过了什么?我想一定有我不知道的速度优势。就上下文而言,这是经纪公司 API 中的生产代码。
我看到了什么:
const unsigned MAX_ATTEMPTS = 50;
unsigned attempt = 0;
for (;;) {
++attempt;
// logic, functions, output
if( attempt >= MAX_ATTEMPTS) {
break;
}
}
我的预期:
const unsigned MAX_ATTEMPTS = 50;
for(unsigned attempt = 0; attempt < MAX_ATTEMPTS; ++attempt){
// logic, functions, output
}
*** 纠正错字
【问题讨论】:
-
它们有不同的功能(假设(2)中的错字):(1)将无条件地执行一次逻辑功能。 (2) 如果进入时退出条件为真,则不会。
-
for(unsigned attempt = 1; attempt <= MAX_ATTEMPTS; ++attempt)大概。 -
在他们的代码中,循环体看到
attempt,范围从1到MAX_ATTEMPTS。在你的,它看到 0 到MAX_ATTEMPTS - 1 -
这类问题的答案总是一样的:简介、简介、简介。
-
@tadman 好吧,我很傻。没看标题。