我需要隐藏指令以在C中获得经过的时间.例如,在下一个代码中,有几行指令来获取函数foo的经过时间.
struct timeval start_keygen, end_keygen;
long int diff_keygen_sec = 0;
gettimeofday(&start_keygen, NULL);
foo(r, w, h);
gettimeofday(&end_keygen, NULL);
timediff(start_keygen, end_keygen, &diff_keygen_sec);
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在一个函数中隐藏多行,例如在"getTime"中,即:
getTime(foo(r,w,h))
Run Code Online (Sandbox Code Playgroud)
你可以使用一个宏:
#define TIME(e, res) do{struct timeval start_keygen, end_keygen; \
res = 0; \
gettimeofday(&start_keygen, NULL); \
e; \
gettimeofday(&end_keygen, NULL); \
timediff(start_keygen, end_keygen, &res)} while(0) \
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
long int myRes;
TIME(foo(r,w,h), myRes);
Run Code Online (Sandbox Code Playgroud)
这将扩展到您拥有的代码,每次在编译时使用它并将结果绑定到myRes.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |