C語言裡面怎樣測出程式運算的時間

2024-12-25 06:10:15 字數 2256 閱讀 1749

1樓:網友

#include

#include

int main()

double times = clock() double)(clocks_per_sec);

printf("%2lf",times);

return 0;

簡單地說,就是使用庫中的clock()函式。

具體講,程式中的clock()函式在中宣告,每次呼叫它,返回程式自開始執行至此經歷的時間,單位是(1/clocks_per_sec)秒,clocks_per_sec是在中宣告的乙個常數,在windows環境下,它的值是1000,也就是說若程式執行了,呼叫clock()函式會返回1500;在linux或unix環境下,它的值是1000000,即此時clock()函式會返回1500000,為了增強程式的可移植性,故通用寫法為clock() double)(clocks_per_sec)。

2樓:網友

扔個時間種子就ok了。

#include ""

time_t a,b;

clock_t start,end;

srand(time(null));

start=clock();

a=time(null);

end=clock();

b=time(null);

printf("it took you % seconds",(double)(end-start)/;/ 換算。

這或者用difftime(b,a)也可以。

printf("it took you % seconds",difftime(b,a));

3樓:網友

如果要測出本程式運算的時間,那麼乙個簡單的思路就是,在程式開始和結尾兩處分別獲得系統時間戳,然後求出這兩個時間戳的差值。

4樓:匿名使用者

在程式開始和結束時分別呼叫一次clock()函式,求兩次返回值的差,再除以clocks_per_sec就可以知道程式執行的秒數。

上面提到的函式和巨集在標頭檔案中。

c語言怎麼測試一段程式的執行時間?

5樓:

c/c++中的計時函式是clock(),而與其相關的資料型別是clock_t。在msdn中,查得對clock函式定義如下:

clock_t clock( void );

這個函式返回從「開啟這個程式程序」到「程式中呼叫clock()函式」時之間的cpu時鐘計時單元(clock tick)數,在msdn中稱之為掛鐘時間(wal-clock)。其中clock_t是用來儲存時間的資料型別,在檔案中,我們可以找到對它的定義:

#ifndef _clock_t_defined

typedef long clock_t;

#define _clock_t_defined

#endif

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

#define clocks_per_sec ((clock_t)1000) //clocks_per_sec為系統自定義的。

void elapsed_time()

#include 「

#include 「

#include 「

int main( )

long i = 10000000l;

clock_t start, finish;

double total_time;

測量乙個事件持續的時間*/

printf( "time to do %ld empty loops is ", i );

start = clock();

while( i--)

finish = clock();

total_time = (double)(finish-start) / clocks_per_sec;

printf( "%f seconds/n", total_time);

return 0;

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

time to do 10000000 empty loops is seconds

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

C語言運算子C語言運算子是怎麼運算的

內容來自使用者 wjian178 e68a84e8a2ad62616964757a686964616f31333433646432 1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正...

C語言中的基本運算問題,C語言中的基本運算問題 10

有些運算操作是要區分有符號與無符號的情況的,比如除法,取模運算其計算語意是不同的,具體來說,有符號的除法在x86平臺上對應的彙編指令是idiv,而無符號的除法對應的則是div。而對於另外一些操作運算,則是不區分有符號與無符號的,比如,加法,減法,乘法運算。可以通過以下 測試 int main 雙目運...

以下c語言程式,按照逗號運算子的演算法,最後程式執行時卻輸出x,y都為6,新人求教

y x a b,b c 可以寫成x a b y b c 這樣你自己就會算了。逗號表示式是一種將多個語句變成一條語句的方法,只要把它還原回去就可以理解了,比如 for i 0,n 0 i 5 i 就可以還原成 n 0 for i 0 i 5 i 這並不複雜。還原的方法就是,每個逗號前面的東西如果是一條...