Sdílet prostřednictvím


clock

Vypočítá hodinový čas používaný volajícím procesem.

Syntaxe

clock_t clock( void );

Vrácená hodnota

Uplynulý čas od inicializace CRT na začátku procesu měřený v CLOCKS_PER_SEC jednotkách za sekundu. Pokud uplynulá doba není k dispozici nebo překročila maximální kladnou dobu, kterou lze zaznamenat jako clock_t typ, vrátí funkce hodnotu (clock_t)(-1).

Poznámky

Funkce clock udává, kolik času uplynulo od inicializace CRT během spuštění procesu. Tato funkce není striktně v souladu se standardem ISO C, který jako návratová hodnota určuje čistý čas procesoru. Pokud chcete získat časy procesoru, použijte funkci Win32 GetProcessTimes . Pokud chcete zjistit uplynulý čas v sekundách, vydělte hodnotu vrácenou clock funkcí makrem CLOCKS_PER_SEC.

Vzhledem k dostatečnému času může hodnota vrácená clock hodnotou překročit maximální kladnou clock_thodnotu . Pokud proces běží déle, je hodnota vrácená vždy (clock_t)(-1), jak je určeno standardem clock ISO C99 (7.23.2.1) a standardem ISO C11 (7.27.2.1). Microsoft implementuje clock_t jako long32bitové celé číslo se znaménkem a CLOCKS_PER_SEC makro je definováno jako 1000. Toto makro poskytuje maximální clock návratovou hodnotu funkce 2147483,647 sekund nebo přibližně 24,8 dní. Nespoléhejte na hodnotu vrácenou clock v procesech, které běží déle, než je tato doba. 64bitovou time funkci nebo funkci Windows QueryPerformanceCounter můžete použít k zaznamenávání uplynulých procesů v mnoha letech.

Požadavky

Rutina Požadovaný hlavičkový soubor
clock <time.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

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

Viz také

Správa času
difftime, _difftime32, _difftime64
time, _time32, _time64