需要
time.h
struct timespec { time_t tv_sec; // seconds long tv_nsec; // and nanoseconds };
int clock_gettime(clockid_t clk_id,struct timespec *tp);
例子
1 #include <stdio.h> 2 #include <time.h> 3 #include <math.h> 4 #define times 1e6 5 6 struct timespec t_start = {0,0}; 7 struct timespec t_end = {0,0}; 8 9 void *funcol[] = {sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, log, log2, log10, exp, sqrt}; 10 11 int main() 12 { 13 14 for(int p=0;p<14;p++) 15 { 16 clock_gettime(CLOCK_REALTIME,&t_start); 17 for(int i=0;i<times;i++) 18 (*(double (*)(int))funcol[p])(i); 19 clock_gettime(CLOCK_REALTIME,&t_end); 20 printf("%lf ms\n",(double)(t_end.tv_sec-t_start.tv_sec)*1000+(double)(t_end.tv_nsec-t_start.tv_nsec)/1000000); 21 } 22 return 0; 23 }