C-时(真)与时(条件)-性能

C-时(真)与时(条件)-性能,c,C,我想知道以下各项之间的性能是否存在差异: while(true) { ..... } 以及: bool x; x = true; while(x) { ..... } 我需要最好的性能,两者之间的微小差异对我的应用程序很重要 OP评论中的信息: while(true)在某个时候也会被保留,这是非常罕见的。首先。。。 如果要进行无限循环,请(始终)使用: 在循环之前定义变量绝对没有理由加速“应用程序”。因此,没有理由使用: bool x = true; while(x) { ... }

我想知道以下各项之间的性能是否存在差异:

while(true)
{
.....
}
以及:

bool x;
x = true;
while(x)
{
.....
}
我需要最好的性能,两者之间的微小差异对我的应用程序很重要

OP评论中的信息:
while(true)
在某个时候也会被保留,这是非常罕见的。

首先。。。 如果要进行无限循环,请(始终)使用:

在循环之前定义变量绝对没有理由加速“应用程序”。因此,没有理由使用:

bool x = true;
while(x)
{
  ...
}

如果您需要一个真正无止境的循环,那么为什么要使用条件?
如果您需要一个可以保留的循环,那么
while(true){…}
将包含
If(!x)
,而
while(x)
不包含该循环。

while(true)
超过
while(x)
的任何潜在优化好处都将在此时丢失。

首先,不要落入过早优化的陷阱。其次,我保证!具有优化的构建。然后看看生成的代码(带有优化)进行比较。我同意@Someprogrammerdude。除此之外,如果循环永远运行,你为什么要关心在开始时几个循环的优势呢?@ThomasFlinkow如果循环体做得很少,它会产生很大的不同。如果不做测试,少一条指令。你需要一个无止境的循环吗?那为什么要使用条件呢?如果您需要一个可以保留的循环,那么
while(true){…}
将包含
If(!x)
,而
while(x)
不包含该循环。
while(true)
超过
while(x)
的任何潜在优化好处都将在此时丢失。继续,告诉我们,循环中有什么?我的意思是,通常情况下,这样的循环包含系统调用,正如其他人所说,这将使您的“优化”毫无意义。欢迎来到StackOverflow,谢谢您的回答。你想出示你参加考试的徽章吗?大多数有权向上投票答案的人都喜欢在回答者帐户上看到该徽章。如果
while(x)
中的条件有任何意义(OP已经确认了这一点),那么
while(true)
中的每一个循环都会在某个点检查相同的条件,以确定何时离开循环。例如,
if(!x)
,然后是我不喜欢的东西,例如,
break
goto
。对我来说,不喜欢这些东西是使用while(x)的另一个原因,但严格来说,这与OPs问题无关。
bool x = true;
while(x)
{
  ...
}