作者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