Defined in header <time.h>
typedef /* unspecified */ clock_t;

Arithmetic (until C11)Real (since C11) type capable of representing the processor time used by a process. It has implementation-defined range and precision.


#include <stdio.h>
#include <time.h>
#include <math.h>
volatile double sink;
int main (void)
  clock_t start = clock();
  for(size_t i=0; i<3141592; ++i)
  clock_t end = clock();
  double cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
  printf("for loop took %f seconds to execute \n", cpu_time_used);

Possible output:

for loop took 0.271828 seconds to execute


  • C17 standard (ISO/IEC 9899:2018):
    • 7.27.1/3 Components of time (p: 284)
  • C11 standard (ISO/IEC 9899:2011):
    • 7.27.1/3 Components of time (p: 388)
  • C99 standard (ISO/IEC 9899:1999):
    • 7.23.1/3 Components of time (p: 338)
  • C89/C90 standard (ISO/IEC 9899:1990):
    • 4.12.1 Components of time

See also

returns raw processor clock time since the program is started
number of processor clock ticks per second
(macro constant)
C++ documentation for clock_t

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.