[問題] 奇怪的 clock()

看板C_and_CPP作者時間15年前 (2009/03/04 18:18), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/1
我寫了這樣的程式 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

03/04 18:34, , 1F
clock_t應該整數型,可是你卻用 "%f"..
03/04 18:34, 1F

03/04 18:37, , 2F
....這個我是過各種組合 cast 成 double 也沒有用
03/04 18:37, 2F

03/04 18:38, , 3F
問題出在 c_end 應該要等於 53 * CLOCKS_PER_SEC
03/04 18:38, 3F

03/04 19:07, , 4F
c_end 怎麼會等於 53 * CLOCKS_PER_SEC
03/04 19:07, 4F

03/04 19:19, , 5F
我想他的意思是 c_end-c_start 要等於 53 * CLOCKS_PER_SEC
03/04 19:19, 5F

03/04 19:24, , 6F
什麼環境下? 看看 clock 給的是 process time 還是真實時間
03/04 19:24, 6F

03/04 19:24, , 7F
sorry, processor* time
03/04 19:24, 7F
文章代碼(AID): #19hbMC-k (C_and_CPP)