Aracılığıyla paylaş


difftime, _difftime32, _difftime64

İki kez arasındaki farkı bulur.

Sözdizimi

double difftime( time_t timeEnd, time_t timeStart );
double _difftime32( __time32_t timeEnd, __time32_t timeStart );
double _difftime64( __time64_t timeEnd, __time64_t timeStart );

Parametreler

timeEnd
Bitiş saati.

timeStart
Başlangıç saati.

Dönüş değeri

difftime , saniye cinsinden geçen süreyi ile timeStarttimeEnddöndürür. Döndürülen değer çift duyarlıklı kayan noktalı sayıdır. Dönüş değeri 0 olabilir ve bu da bir hata olduğunu gösterir.

Açıklamalar

işlevi, difftime sağlanan iki zaman değeri timeStart ile timeEndarasındaki farkı hesaplar.

Sağlanan zaman değeri aralığına time_tsığmalıdır. time_t 64 bitlik bir değerdir. Böylece aralığın sonu 18 Ocak 2038(UTC) 23:59:59'dan 31 Aralık 3000'e kadar uzatıldı. Alt aralığı time_t hala 1 Ocak 1970 gece yarısıdır.

difftime , veya tanımlanıp tanımlanmadığına _difftime32_difftime64_USE_32BIT_TIME_T bağlı olarak değerlendirilen bir satır içi işlevdir. _difftime32 ve _difftime64, zaman türünün belirli bir boyutunun kullanılmasını zorlamak için doğrudan kullanılabilir.

Bu işlevler parametrelerini doğrular. Parametrelerden biri sıfır veya negatifse, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler 0 döndürür ve olarak EINVALayarlanırerrno.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Yordam Gerekli başlık
difftime <time.h>
_difftime32 <time.h>
_difftime64 <time.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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 );
}
Using random floating point numbers 1.04749e+038 2.01482e+038 1.72737e+038
Multiplying 2 floating point numbers 100 million times...
Program takes      3 seconds.

Ayrıca bkz.

Matematik ve kayan nokta desteği
Zaman yönetimi
time, _time32, _time64