C語言clock 執行結果duration為0

2021-10-04 22:22:24 字數 1138 閱讀 6067

c語言 庫函式 clock_t clock(void) 返回程式執行起(一般為程式的開頭)到呼叫該函式為止處理器時鐘所使用的時間。

為計算語句執行時間我們可以定義兩個clock_t型別的變數start和stop。

clock_t start,stop;
則執行時間測量方法如下:

start=clock();

sum(a,n,x);

stop=clock();

stop-start則為執行時間間隔的時鐘打點數,再定義乙個double 變數duration.

double duration;

duration=(double)(stop-start)/clk_tck;

clk_tck是個常熟:機器時鐘每秒所走的時鐘打點數。則durantion為語句執行的秒數。

整體**如下:

clock_t start,stop;

double duration;

start=clock();

sum(a,n,x);//需要測量執行時間的語句

stop=clock();

duration=(double)(stop-start)/clk_tck;

printf("%6.2e\n",duration);

執行一下,發現測量結果為0。為什麼呢??

因為測量語句跑的太快了,沒到1個tick的時間,怎麼解決這個問題呢?只需要重複幾遍該測量語句就好了。

#define maxk 1e7 //最大重複次數 

start=clock();

for(i=0;i多次迴圈該語句,還是不夠大就加大迴圈次數,你要相信你的電腦跑得非常快。這裡用了1e7次,得到的duration再除以maxk迴圈次數,就是你要的單次執行結果了。如下圖:

C語言函式clock()

c語言函式clock 功 能 返回處理器呼叫某個程序或函式所花費的時間。用 法 clock t clock void 說明 clock t其實就是long,即長整形。該函式返回值是硬體滴答數,要換算成秒或者毫秒,需要除以 clk tck 或者 clk tck clocks per sec。比如,在v...

C語言計時函式clock

c語言clock 函式實現計時功能 函式clock 返回值為clock t型別 乙個長整型數 它的實際意義是指 程序啟動到呼叫clock 函式經過了多少個cpu時鐘計時單元 借助clocks per sec這個常量可以把clock t轉化為以秒為單位的數值。下面是它的用法 include clock...

C語言執行cmd命令並獲取執行結果

優點 跨平台 缺點 windows下呼叫時會閃出控制台視窗 include include brief 使用popen呼叫終端並獲取執行結果 param in cmd 命令內容 param out result 儲存結果的位址 return 0或1 執行狀態,失敗或成功 int exec cmd c...