clock()函数用法

来源:互联网 发布:淘宝网13岁女大童棉衣 编辑:程序博客网 时间:2024/05/14 18:18

C语言函数clock()  

功 能: 返回处理器调用某个进程或函数所花费的时间。

  用 法: clock_t clock(void);
  说明:clock_t其实就是long,即长整形。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可。具体见第一个例子。
  程序例1:(TC下运行通过)
  #include <stdio.h>
  #include <time.h>
  int main(void)
  {
  clock_t start, end;
  start = clock();
  delay(2000);
  end = clock();
  printf("The time was: %fn", (double)(end - start) / CLK_TCK);
  return 0;
  }
  CLK_TCK 定义在TC中的time.h中:#define CLK_TCK 18.2。在VC6.0中也有关于CLK_TCK的宏定义,不过其值不再是18.2,而是1000。实际上在VC6.0中CLK_TCK已完全等同于CLOCKS_PER_SEC。
  在VC中delay用Sleep()来代替,其头文件是windows.h。
  程序例2:(VC6.0下运行通过)
  #include <stdio.h>
  #include <time.h>
  #include<windows.h>
  int main(void)
  {
  clock_t start, end;
  start = clock();
  Sleep(2000);
  end = clock();
  printf("The time was: %dn", (end - start) / CLK_TCK);//注意是%d,不再是%f
  return 0;
  }
  程序例3:(VC6.0下运行通过)
  #include "stdio.h"
  #include "stdlib.h"
  #include "time.h"
  int main( void )
  {
  long i = 10000000L;
  clock_t start, finish;
  double duration;
  
  printf( "Time to do %ld empty loops is ", i );
  start = clock();
  while( i-- ) ;
  finish = clock();
  duration = (double)(finish - start) / CLK_TCK; //CLK_TCK在VC6.0中可以用CLOCKS_PER_SEC
  printf( "%f secondsn", duration );
  system("pause");
  return 0;
  }
原创粉丝点击