clock

Çağırma işlemi tarafından kullanılan duvar saati saatini hesaplar.

Sözdizimi

clock_t clock( void );

Dönüş değeri

İşlemin başlangıcındaki CRT başlatma işleminden bu yana geçen süre, saniye başına birim cinsinden CLOCKS_PER_SEC ölçülür. Geçen süre kullanılamıyorsa veya tür olarak clock_t kaydedilebilecek maksimum pozitif süreyi aştıysa, işlevi değerini (clock_t)(-1)döndürür.

Açıklamalar

işlevi, clock işlem başlatma sırasında CRT başlatma işleminden bu yana duvar saati süresinin ne kadar geçtiğini bildirir. Bu işlev, net CPU süresini dönüş değeri olarak belirten ISO C'ye tam olarak uymaz. CPU sürelerini almak için Win32 GetProcessTimes işlevini kullanın. Geçen süreyi saniye cinsinden belirlemek için, işlevi tarafından clock döndürülen değeri makroya CLOCKS_PER_SECbölün.

Yeterli süre verildiyse, tarafından clock döndürülen değer değerinin maksimum pozitif değerini clock_taşabilir. İşlem daha uzun çalıştığında, tarafından clock döndürülen değer her zaman (clock_t)(-1)ISO C99 standardı (7.23.2.1) ve ISO C11 standardı (7.27.2.1) tarafından belirtildiği şekilde olur. Microsoft, imzalı bir long32 bit tamsayı olarak uygular clock_t ve CLOCKS_PER_SEC makro 1000 olarak tanımlanır. Bu makro en fazla clock 2147483,647 saniye veya yaklaşık 24,8 gün işlev dönüş değeri verir. Bu süreden daha uzun süre çalışan işlemlerde tarafından clock döndürülen değere güvenmeyin. Uzun yılların geçen işlemlerini kaydetmek için 64 bit time işlevini veya Windows QueryPerformanceCounter işlevini kullanabilirsiniz.

Gereksinimler

Yordam Gerekli başlık
clock <time.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_clock.c
// This sample uses clock() to 'sleep' for three
// seconds, then determines how long it takes
// to execute an empty loop 600000000 times.

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

// Pauses for a specified number of clock cycles.
void do_sleep( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}

const long num_loops = 600000000L;

int main( void )
{
   long    i = num_loops;
   clock_t start, finish;
   double  duration;

   // Delay for a specified time.
   printf( "Delay for three seconds\n" );
   do_sleep( (clock_t)3 * CLOCKS_PER_SEC );
   printf( "Done!\n" );

   // Measure the duration of an event.
   start = clock();
   while( i-- )
      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "Time to do %ld empty loops is ", num_loops );
   printf( "%2.3f seconds\n", duration );
}
Delay for three seconds
Done!
Time to do 600000000 empty loops is 1.354 seconds

Ayrıca bkz.

Zaman yönetimi
difftime, _difftime32, _difftime64
time, _time32, _time64