C 關於計時clock

2021-06-06 02:05:15 字數 1007 閱讀 5573

c/c

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

在msdn中,查得對clock函式定義如下:clock_t clock(

void);

這個函式返回從「開啟這個程式程序」到「程式中呼叫clock()函式」時之間的cpu時鐘計時單元(clock tick)數,在msdn中稱之為掛鐘時間(wal

-clock)。

其中clock_t是用來儲存時間的資料型別,在time.h檔案中,我們可以找到對它的定義:

#ifndef _clock_t_defined

typedef

long

clock_t;

#define

_clock_t_defined

#endif

很明顯,clock_t是乙個長整形數。在time.h檔案中,還定義了乙個常量clocks_per_sec,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:

#define

clocks_per_sec ((clock_t)1000)

可以看到每過千分之一秒(1毫秒),呼叫clock()函式返回的值就加1。

下面舉個例子,你可以使用公式clock()/

void

elapsed_time()

#include 「stdio.h」

#include 「stdlib.h」

#include 「time.h」

intmain(

void)

在筆者的機器上,執行結果如下: t

ime to

do 10000000

empty loops

is 0.03000

seconds

上面我們看到時鐘計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變clocks_per_sec的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標準c/c

++中,最小的計時單位是一毫秒。

關於clock 函式計時

clock tick 時鐘計時單元 而不把它叫做時鐘滴答次數 乙個時鐘計時單元的時間長短是由cpu控制的,乙個clock tick不是cpu的乙個時鐘週期,而是c c 的乙個基本計時單位。clock函式 clock t clock 這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時...

關於clock 函式計時

clock tick 時鐘計時單元 而不把它叫做時鐘滴答次數 乙個時鐘計時單元的時間長短是由cpu控制的,乙個clock tick不是cpu的乙個時鐘週期,而是c c 的乙個基本計時單位。clock函式 clock t clock 這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時...

C語言計時函式clock

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