Pas la peine de faire des calculs, tu peux juste prendre :
for(i = 0; i < 1000000; i++) { }
La mettre dans une boucle :
1 2 3 4
| for(j = 0; j < 3000; j++)
{
for(i = 0; i < 1000000; i++) { }
} |
Mettre le tout dans une autre boucle si c'est pas suffisant, etc. autant que nécessaire. Mais un compilateur intelligent pourrait supprimer cette partie du code en constant qu'elle ne sert à rien. Alors dans la boucle la plus interne tu peux ajouter n'importe quelle instruction bidon suffisante pour modifier le jugement du compilateur. Avec le code ci-dessus, on fait 3 milliards d'opération donc ça va pas prendre moins d'une seconde sur un PC de 3GHz ...
J'avoue que c'est un peu embêtant, alors je te propose une autre technique (bien simple en plus) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <stdio.h>
#include <time.h>
void wait(int millisecondes);
int main()
{
printf("Suspension du programme pendant 5s.\n");
wait(5000);
printf("Termine.\n");
return 0;
}
void wait(int millisecondes)
{
clock_t start = clock();
while ((clock() - start) * 1000 < millisecondes * CLOCKS_PER_SEC) ;
} |
Explications : Dates et heures en C.
Partager