Probablement un optimiseur décent voir que la boucle est un non-op et l'optimiser complètement, donc il n'y aura presque pas de différence entre le début et la fin.
Si ce n'est pas optimisé, les deux boucles travaillent simplement sur le fait que 30 * 640000000 est plus grand que ce qui pourrait être stocké dans un entier de 32 bits. Il exécute la boucle 640000000 interne 30 fois pour tenter d'amplifier le retard.
EDIT: Ainsi, pour chaque 30 fois (en utilisant la variable delay
), il crée une autre boucle (en utilisant i
variable) à partir de 0. Il incrémente i
640000000 fois, chaque incrément, une faible fraction de temps (sinon optimisé loin). Ensuite, la boucle interne se termine, delay
est augmenté de 1 et la boucle interne recommence à 0.
EDIT2: Si vous êtes juste essayer d'ajouter un retard, avez-vous envisagé d'utiliser sleep
ou usleep
ou la fonction Windows correspondante (s) plutôt que d'essayer de mettre en œuvre un sommeil par itération?
Pouvez-vous être plus clair sur exactement ce que vous cherchez? – VeeArr
Je ne comprends pas comment boucle complète avec 30 * 640000000 itérations qui est impossible pour le compilateur 32 bits de traiter avec? – highlevelcoder
Pourquoi est-ce impossible? .. – Blindy