回覆列表
  • 1 # 每天一個好影片

    clock()是C/C++中的計時函式,而與其相關的資料型別是clock_t。

    它的具體功能是返回處理器呼叫某個程序或函式所花費的時間。函式返回從“開啟這個程式程序”到“程式中呼叫clock()函式”時之間的CPU時鐘計時單元(clock tick)數,其中clock_t是用來儲存時間的資料型別。

    time.h

    檔案中,我們可以找到對它的定義:

    #ifndef _CLOCK_T_DEFINED

    typedef long clock_t;

    #define _CLOCK_T_DEFINED

    #endif

    clock_t其實就是long,即長整形。該函式返回值是硬體滴答數,要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000,這表示硬體滴答1000下是1秒,因此要計算一個程序的時間,用clock()除以1000即可。

    clock的返回值一直是0的原因:

    1、編譯器最佳化,for迴圈實際根本沒執行,直接跳過去了,所以時間為0。

    2、clock計算的是程式佔用cpu的時間,如果你的程式執行的動作很少,那麼clock算出的時間也很少。

    3、建議使用time gettimeofday函式來計時。

    擴充套件資料:

    C語言中clock()函式的程式例1:(TC下執行透過)

    #include <stdio.h>

    #include <time.h>

    int main(void)

    {

    clock_t start, end;

    start = clock();

    delay(2000);

    end = clock();

    printf("The time was: %f\n", (double)(end - start) / CLK_TCK);

  • 中秋節和大豐收的關聯?
  • 雞“喉炎”和“喉痘”容易混淆,養雞人如何鑑別,又該如何防治?