假设我们想知道函数A运行多长时间,我们可以编写这样的代码
struct timeval tpstart,tpend;
gettimeofday(&tpstart,NULL);
A();
gettimeofday(&tpend,NULL);
float timeuse= tpend.tv_sec-tpstart.tv_sec + (tpend.tv_usec-tpstart.tv_usec) / 1000000;
printf("Used Time:%f\n",timeuse);
但是我怎么能把它封装到MACRO这样的运行时(A),也许是Runtime(A,B,...),有时几个函数一起运行。
答案 0 :(得分:1)
如果您不关心函数的返回值,那么生活很简单:
#define Runtime(x) do { \
struct timeval tpstart,tpend; \
gettimeofday(&tpstart,NULL); \
x; \
gettimeofday(&tpend,NULL); \
float timeuse= tpend.tv_sec-tpstart.tv_sec + (float)(tpend.tv_usec-tpstart.tv_usec) / 1000000; \
printf("Used Time:%f\n",timeuse); \
} while(0)
Runtime( A() );
Runtime( A() ; B() );