explications sur un petit code
Bonjour,
dans un précédent post (http://www.developpez.net/forums/sho....php?t=324071), j'ai crée un chronomètre mais souviron34 m'a dit que je n'utilisais pas une bonne méthode. Il m'a donc proposé la solution suivante (http://www.developpez.net/forums/sho...87&postcount=9) que je simplifie (pour plus de clarté pour le post) de la manière suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include <time.h>
#include <sys/time.h>
#ifdef LINUX
#include <unistd.h>
#endif
double GetClock ( void )
{
double d ;
struct timeval tval ;
struct timezone *tz=(struct timezone *)NULL ;
timerclear(&tval);
gettimeofday(&tval, tz);
d = ((double)(tval.tv_usec)/1000000.0) ;
d = (double) tval.tv_sec + d ;
return d ;
} |
j'ai deux questions à propos de ce code :
1) quelle est la différence entre
Code:
1 2
|
struct timezone *tz=(struct timezone *)NULL ; |
et
Code:
1 2
|
struct timezone *tz=NULL ; |
?
2) si je fais le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
int main(void)
{
double t_start, t_end;
t_start=GetClock();
printf("t_start = %g\n",t_start);
sleep(3); /* code a mesurer */
t_end=GetClock();
printf("t_end = %g\n",t_end);
printf("%g\n",t_end-t_start);
return 0;
} |
qu'est-ce qui me garanti que t_end est supérieur à t_start ? Quelle est la différence par rapport à ce que j'avais fait (cf http://www.developpez.net/forums/sho...d.php?t=324071) ? Il doit y avoir qqch que je n'ai pas encore bien saisi.
Merci.