c語言怎么獲取程序運(yùn)行時(shí)間

小億
284
2023-11-16 19:14:51
欄目: 編程語言

在C語言中,可以使用time.h頭文件中的clock()函數(shù)來獲取程序的運(yùn)行時(shí)間。

首先,在程序開始的地方調(diào)用clock()函數(shù),將返回的時(shí)間戳保存在一個(gè)變量中,表示程序開始執(zhí)行的時(shí)間。例如:

#include <stdio.h>
#include <time.h>

int main() {
    clock_t start = clock();
    
    // 程序的其他代碼
    
    clock_t end = clock();
    double time_taken = (double)(end - start) / CLOCKS_PER_SEC;
    
    printf("程序執(zhí)行時(shí)間:%.2fs\n", time_taken);
    
    return 0;
}

上述代碼中,程序開始時(shí)調(diào)用clock()函數(shù)獲取當(dāng)前時(shí)間戳,保存在變量start中。程序執(zhí)行結(jié)束后再次調(diào)用clock()函數(shù)獲取當(dāng)前時(shí)間戳,保存在變量end中。然后,通過計(jì)算end - start得到程序執(zhí)行的時(shí)間差,并將其轉(zhuǎn)換為秒數(shù),保存在變量time_taken中。

最后,使用printf函數(shù)將程序的執(zhí)行時(shí)間打印出來。

需要注意的是,clock()函數(shù)返回的時(shí)間單位是時(shí)鐘滴答數(shù)(clock ticks),需要將其轉(zhuǎn)換為秒數(shù)才能得到程序的運(yùn)行時(shí)間。CLOCKS_PER_SEC是一個(gè)常量,表示每秒鐘的時(shí)鐘滴答數(shù)。將時(shí)間差除以CLOCKS_PER_SEC即可得到秒數(shù)。

另外,clock()函數(shù)返回的時(shí)間是CPU時(shí)鐘時(shí)間,而不是真實(shí)的時(shí)間。如果要獲取真實(shí)的時(shí)間,可以使用其他方法,如使用time()函數(shù)或clock_gettime()函數(shù)等。

0