gpt4 book ai didi

c++ - 处理器多久检查一次 while 循环条件?

转载 作者:行者123 更新时间:2023-11-30 20:44:03 25 4
gpt4 key购买 nike

我知道如果 while 循环有这个主体:

while(a<b){
do_some_calculations
}

它将进行计算,然后再次检查 while 循环。但是如果我有一个空 while循环:

while(a<b) { }

它多久检查一次条件?我知道 while 循环编译为 cmpjmp指令(需要一到两个周期)。所以它会每1-2个周期检查一次while循环?或者不检查,还有一些我不知道的事情?详细的解释将会非常有帮助。

P.S.问题是关于低级细节的。请更仔细地阅读它。我想知道共同的原则,而不是“它依赖于编译器等等”。

P.P.S 假设我们有一些有效的条件和编译器为其生成的代码。它多久检查一次?这就是问题。

最佳答案

你似乎没有问正确的问题。如果问题涉及生成汇编代码的语言,您的答案将是,它取决于编译器、优化级别和某些其他因素,但最重要的是,它将取决于条件。每个循环将执行一次测试。如果该测试包括访问数据库并检查其中的某些内容,那么与根据某个到期时间检查本地时间(例如)相比,您的循环的执行频率将少得多。如果没有进一步了解情况,就不可能给出一般性答案。当然,根据条件,编译器有时能够优化测试,但前提是代码的可见行为不依赖于它。因此从概念上讲,每次迭代仍会检查条件。当然,直到条件产生 false 并且循环结束。

关于c++ - 处理器多久检查一次 while 循环条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com