clock

Berechnet die durch den aufrufenden Prozess verwendete Wanduhrzeit.

Syntax

clock_t clock( void );

Rückgabewert

Die verstrichene Zeit seit der CRT-Initialisierung beim Start des Prozesses, gemessen in CLOCKS_PER_SEC-Einheiten pro Sekunde. Wenn die verstrichene Zeit nicht verfügbar ist oder die maximale positive Zeit übersteigt, die als clock_t-Typ aufgezeichnet werden kann, gibt die Funktion den Wert (clock_t)(-1) zurück.

Hinweise

Die clock-Funktion gibt an, welche Gesamtbetrachtungszeit seit der CRT-Initialisierung beim Start des Prozesses vergangen ist. Diese Funktion entspricht nicht streng iso C, was die Netto-CPU-Zeit als Rückgabewert angibt. Um CPU-Zeiten zu erhalten, verwenden Sie die Win32-Funktion GetProcessTimes . Um die verstrichene Zeit in Sekunden zu ermitteln, teilen Sie den Rückgabewert der clock-Funktion durch das Makro CLOCKS_PER_SEC.

Bei ausreichend Zeit kann der von clock zurückgegebene Wert den maximalen positiven Wert von clock_t übersteigen. Wenn die Prozessausführung länger gedauert hat, ist der von clock zurückgegebene Wert – wie im ISO C99-Standard (7.23.2.1) und im ISO C11-Standard (7.27.2.1) angegeben – stets (clock_t)(-1). Microsoft implementiert clock_t als long, einen 32-Bit-Integer mit Vorzeichen, und das CLOCKS_PER_SEC-Makro ist definiert als 1000. Dieses Makro gibt einen maximalen clock Funktionsrücklaufwert von 2147483,647 Sekunden oder etwa 24,8 Tage an. Verlassen Sie sich nicht auf den Wert, der von clock Prozessen zurückgegeben wird, die länger als diese Zeitspanne ausgeführt wurden. Sie können die 64-Bit-Funktion time oder die Windows-Funktion QueryPerformanceCounter verwenden, um verstrichene Zeiten von vielen Jahren aufzuzeichnen.

Anforderungen

Routine Erforderlicher Header
clock <time.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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

Siehe auch

Zeitverwaltung
difftime, _difftime32_difftime64
time, _time32_time64