[C]Peut m'expliquer ce tt petit morceau de code SVP ? merci bcp :)

Peut m'expliquer ce tt petit morceau de code SVP ? merci bcp :) [C] - C++ - Programmation

Marsh Posté le 18-02-2003 à 14:23:25    

hello world,
je m'interdit d'utiliser des choses que je ne comprend pas donc voici un morceau de code é je dois dire qu'apart le while... je ne comprend rien lol
 

Code :
  1. void sleep(int nbr_secondes)
  2. {
  3.   clock_t goal // c koi clock_t ?
  4.   goal = ( nbr_secondes * CLOCKS_PER_SEC)+ clock(); // clock() c une fonction?
  5.   while (goal>clock())
  6.   {
  7.     ; // c obligatoire c ';'?
  8.   }
  9. }

 
 
voila voila  
et comme tjs je suis sous Win XP , je programme en C sous borland c++ builder 6.0  
 
merci beaucoup

Reply

Marsh Posté le 18-02-2003 à 14:23:25   

Reply

Marsh Posté le 18-02-2003 à 14:25:04    

Ca bouffe du CPU comme un con pendant un certain nombre de secondes passé en paramètre.
 
PS: http://www.hmug.org/man/3/clock.html


Message édité par kadreg le 18-02-2003 à 14:28:38

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 18-02-2003 à 14:26:50    

ouais dans le cas d'un os multi-tâches c'est de la bonne programmation de porc :D

Reply

Marsh Posté le 18-02-2003 à 14:32:03    

donc:
 
clock() c'est une fonction qui te retourne certainement un entier qui représente le temps passé depuis le démarrage de windows ou un truc du genre.
 
CLOCKS_PER_SEC doit te donner l'évolution de ce que te donne clock(), par seconde.
 
donc si c'est j'en sais rien 1000 pour CLOCKS_PER_SEC, entre 2 secondes, la valeur retournée par clock() aura augmentée de 2000.
 
comme le but c'est d'attendre, tu as "goal" qui t'indiques la valeur à atteindre avant de sortir de la boucle d'attente.
 
comme tu veux attendre X secondes, ça fait une différence X*CLOCKS_PER_SEC à atteindre entre le début et la fin d'attente.
 
donc la valeur à atteindre est = X*CLOCKS_PER_SEC + clock()
 
d'ou le while( goal > clock() ):
 
on boucle comme un con sans rien faire, en attendant que clock() retourne une valeur de temps supérieure à la fin calculée précédemment.
 

Reply

Marsh Posté le 18-02-2003 à 14:35:43    

BJOne a écrit :

donc:
clock() c'est une fonction qui te retourne certainement un entier qui représente le temps passé depuis le démarrage de windows ou un truc du genre.


 
Justement, c'est là ou ça devient très con, c'est que clock() retourne la quantitée de temps utilisée par le processus. Ce qui veut dire que sur une machine bien chargée, ça va joyeusement dériver :°)


Message édité par kadreg le 18-02-2003 à 14:36:01

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 18-02-2003 à 14:40:14    

kadreg a écrit :


 
Justement, c'est là ou ça devient très con, c'est que clock() retourne la quantitée de temps utilisée par le processus. Ce qui veut dire que sur une machine bien chargée, ça va joyeusement dériver :°)


 
:lol: ha désolé j'avais pas lu :D [:ddt]

Reply

Marsh Posté le 18-02-2003 à 14:40:56    

c'est vraiment du code de porc dans tout sa splendeur alors !!!

Reply

Marsh Posté le 18-02-2003 à 14:46:44    

BJOne a écrit :

c'est vraiment du code de porc dans tout sa splendeur alors !!!


preuve de ma bone fois c pas moi qui ai pondu ce code mais campupress (pour ce que ca interresse http://www.campuspress.fr/Document [...] Prog_c.zip  application 3 :))

Reply

Marsh Posté le 18-02-2003 à 15:01:11    

oué, c'est à titre éducatif, ils se sont concentré sur un truc qui marche vaguement....
 
je supposes que c'est pour débutant, donc ils ont ptet pas voulu vous jeter à la figure les concepts du mutli-tâche...

Reply

Marsh Posté le 18-02-2003 à 15:04:15    

BJOne a écrit :

oué, c'est à titre éducatif, ils se sont concentré sur un truc qui marche vaguement....
 
je supposes que c'est pour débutant, donc ils ont ptet pas voulu vous jeter à la figure les concepts du mutli-tâche...


a ca marche tres bien  :D  oui je pense qu'il veulent pas prendre la tete a des petits debutants comme moi lol merci pr les explications en tt cas :)

Reply

Marsh Posté le 18-02-2003 à 15:04:15   

Reply

Marsh Posté le 20-02-2003 à 09:23:09    

kadreg a écrit :

clock() retourne la quantitée de temps utilisée par le processus.

C'est ce que j'ai lu moi aussi...
Sous VC++ 6 ça mesure le temps tout court.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed