difftime, _difftime32, _difftime64
New Complex.h Functions
New Math.h functions
New fenv.h functions
and
div
eof
not
or
xor
New stdlib.h functions
TOC
Réduire la table des matières
Développer la table des matières
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

difftime, _difftime32, _difftime64

 

Trouve la différence entre deux horaires.

double difftime( 
   time_t timer1,
   time_t timer0 
);
double _difftime32( 
   __time32_t timer1,
   __time32_t timer0 
);
double _difftime64( 
   __time64_t timer1,
   __time64_t timer0 
);

timer1

Heure de fin.

timer0

Heure de début.

difftime retourne la durée en secondes, entretimer0 et timer1.La valeur retournée est un nombre à virgule flottante double précision.La valeur de retour peut être 0, ce qui indique une erreur.

La fonction difftime calcule la différence entre les deux valeurs d'heure fournies timer0 et timer1.

La valeur d'heure indiquée doit entrer dans la plage time_t. time_tValeur décimale (64 bits).Par conséquent, la fin de la plage a été étendue à partir de 3h14 7s le 19 janvier 2038 à 23h59 59s, le 31 décembre, 3000.La chaîne inférieure time_t est encore de minuit, le 1er janvier 1970.

difftime est une fonction inline qui prend la valeur _difftime32 ou _difftime64 selon la façon dont _USE_32BIT_TIME_T est définie. _difftime32 et _difftime64 peuvent être utilisés directement pour forcer l'utilisation d'une taille particulière du type time.

Ces fonctions valident leurs paramètres.Si un des paramètres est zéro ou est négatif, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre.Si l'exécution est autorisée à se poursuivre, ces fonctions retournent 0 et définissent errno à la valeur EINVAL.

Configuration requise

Routine

En-tête requis

difftime

<time.h>

_difftime32

<time.h>

_difftime64

<time.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

// crt_difftime.c
// This program calculates the amount of time
// needed to do a floating-point multiply 100 million times.
//

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <float.h>

double RangedRand( float range_min, float range_max)
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   return ((double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min);
}

int main( void )
{
   time_t   start, finish;
   long     loop;
   double   result, elapsed_time;
   double   arNums[3];

   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );

   arNums[0] = RangedRand(1, FLT_MAX);
   arNums[1] = RangedRand(1, FLT_MAX);
   arNums[2] = RangedRand(1, FLT_MAX);
   printf( "Using floating point numbers %.5e %.5e %.5e\n", arNums[0], arNums[1], arNums[2] );

   printf( "Multiplying 2 numbers 100 million times...\n" );

   time( &start );
   for( loop = 0; loop < 100000000; loop++ )
      result = arNums[loop%3] * arNums[(loop+1)%3]; 
   time( &finish );

   elapsed_time = difftime( finish, start );
   printf( "\nProgram takes %6.0f seconds.\n", elapsed_time );
}

Utilisation des nombres à virgule flottante aléatoire 1.04749e+038 2.01482e+038 1.72737e+038
Multiplie 2 nombres à virgule flottante 100 millions de fois…

Le programme prend 3 secondes. Multipliant 2 nombres à virgule flottante 500 millions de fois…

Le programme prend 5 secondes.

Équivalent .NET Framework

Afficher:
© 2016 Microsoft