Вероятно, приличный оптимизатор увидит, что цикл не работает, и оптимизирует его полностью, поэтому между началом и концом почти не будет различий.
Если это не оптимизировано, два цикла просто работают вокруг факта, что 30 * 640000000 больше, чем может быть сохранено в 32-разрядном целом числе. Он пытается выполнить внутренний цикл 640000000 30 раз, чтобы увеличить задержку.
EDIT:
Таким образом, для каждого из 30 раз (с использованием переменной delay
) создается новый цикл (с использованием переменной i
), начинающийся с 0. Затем он увеличивается i
640000000 раз, причем каждый прирост занимает небольшую долю времени (если не оптимизирован). далеко). Затем внутренний цикл завершается, delay
увеличивается на 1, и внутренний цикл снова начинается с 0.
EDIT2:
Если вы просто пытаетесь добавить задержку, рассматривали ли вы вопрос об использовании sleep
или usleep
или соответствующих функций Windows вместо того, чтобы пытаться реализовать спящий режим итерацией?