作者retrash ()
看板C_and_CPP
标题[问题] 奇怪的 clock()
时间Wed Mar 4 18:18:48 2009
我写了这样的程式
int main (void) {
time_t t_start, t_end;
clock_t c_start, c_end;
time(&t_start);
c_start = clock();
DoSomeWorks();
time(&t_end);
c_end = clock();
printf("time 1: %f\n", difftime(t_end, t_start);
printf("time 2: %f\n", ((c_end - c_start)/CLOCKS_PER_SEC));
return 0;
}
结果却是
time 1 = 53
time 2 = 0
很奇怪的是 c_start = 0 c_end = 300000 CLOCKS_PER_SEC = 1000000
我确实是等了大概一分钟,所以我相信 time 1 是对的。 (53 second)
可是....为什麽用 clock() 却会给错误的结果呢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 155.97.226.25
1F:推 cole945:clock_t应该整数型,可是你却用 "%f".. 03/04 18:34
2F:→ retrash:....这个我是过各种组合 cast 成 double 也没有用 03/04 18:37
3F:→ retrash:问题出在 c_end 应该要等於 53 * CLOCKS_PER_SEC 03/04 18:38
4F:推 TroyLee:c_end 怎麽会等於 53 * CLOCKS_PER_SEC 03/04 19:07
5F:推 ledia:我想他的意思是 c_end-c_start 要等於 53 * CLOCKS_PER_SEC 03/04 19:19
6F:推 ledia:什麽环境下? 看看 clock 给的是 process time 还是真实时间 03/04 19:24
7F:→ ledia:sorry, processor* time 03/04 19:24