#include <iostream>
using namespace std;
int main()
{
for (int i = 0; i < 40; ++i)
{
unsigned long long j = 0;
while(j++ <= 10000000);
cout<<"A";
}
cout<<"\n";
return 0;
}
在運行這段代碼有打印的第一「A」之前是一個小的時間間隔之前,所有其它A得到印在那之後立即。有人可以向我解釋爲什麼會發生這種情況?爲什麼不C++程序等待第二次迭代秒像它爲第一次重複打印字符
您確定最初的延遲不僅僅是程序啓動的延遲嗎?嘗試在main()的入口點之後立即放置一個cout語句,看看它和第一個'A'之間是否有明顯的延遲。如果你正在構建一個優化版本,我希望優化器擺脫延遲循環。 – mattnewport
是的,我也檢查過。入口處的cout立即被打印,然後第二個延遲,然後立即打印40'A –
無用的while循環是嘗試實現「睡眠」功能的可怕方法。你的編譯器可能完全消除它。 –