當前位置:首頁 » 編程語言 » c語言中clock函數如何使用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中clock函數如何使用

發布時間: 2022-07-30 19:39:30

c語言中有沒有用於計時的函數怎麼用

有,CLOCK函數。

clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:clock_t clock(void) ; #ifndef _CLOCK_T_DEFINED typedef long clock_t;
#define _CLOCK_T_DEFINED #endif。

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

㈡ C++ 裡面的clock()函數用法 它能不能在一個程序裡面多次的使用 計算幾個函數的運行時間勒 請高手指教 我

clock_t clock(void);
返回當前時鍾計數, 可以在程序中多次調用,clock_t相當於U32型
因此可以定義
clock_t start_time, stop_time;
start_time = clock();
....//任意代碼
stop_time = clock();
上面代碼的運行時間就是stop_time - start_time, 單位為ms(毫秒)

㈢ c 語言中clock函數怎麼用啊

/* CLOCK.C:
等待3秒,記錄程序運行開始時間(start里)
循環600000次做運算
[a = sqrt(sqrt(16.0)); a = sqrt(sqrt(16.0));]
記錄程序運算結屬時間(finish里)
算出這六十萬次運行時間.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

void sleep( clock_t wait );

void main( void )
{
long i = 600000L;
clock_t start, finish;
double ration;
double a;

/* 等三秒 */
printf( "Delay for 3 seconds\n" );
sleep( (clock_t)3 * CLOCKS_PER_SEC );
printf( "Done!\n" );

/* Measure the ration of an event. */
printf( "Time to do %ld loops is ", i );
start = clock();

while( i-- ) {
a = sqrt(sqrt(16.0)); a = sqrt(sqrt(16.0));

}

finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%lf seconds\n", ration );
}

/* 等待多少毫秒的子程序 */
void sleep( clock_t wait )
{
clock_t goal;
goal = wait + clock();
while( goal > clock() )
;
}

㈣ c語言中的clock()問題

就是
while(clock()-now<CLOCKS_PER_SEC) ;
的意思,注意後面還有個分號,這是一個空循環。因為clock會返回當前時間,now是一個過去的時刻,所以這個條件的意思是 當前時間比那個時刻晚的多少小於CLOCKS_PER_SEC,也就是如果時間相差還不到CLOCKS_PER_SEC就一直循環。因此這個循環的意思就是等待從now = clock();開始,CLOCKS_PER_SEC個tick才退出循環,繼續執行,就是等待CLOCKS_PER_SEC時間的意思,看名稱,應該是等一秒的意思。

㈤ C語言中clock的用法

clock()返回的是自程序啟動以來經過的CPU時間,不是通常意義的時間。

㈥ c語言clock怎麼用啊 算程序運行時間謝謝大家了

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
clock_t start, finish;
double ration=0;
start = clock();

/*******************************
**********添加代碼**************
*******************************/

finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", ration );

}

把你需要計算時間的代碼添加進去就可以結算出時間了。有不明白的可以繼續問我。

㈦ c語言如何計時

  1. C語言中提供了許多庫函數來實現計時功能

  2. 下面介紹一些常用的計時函數

    1. time()

    頭文件:time.h

    函數原型:time_t time(time_t * timer)

    功能:返回以格林尼治時間(GMT)為標准,從1970年1月1日00:00:00到現在的時此刻所經過的秒數

    用time()函數結合其他函數(如:localtime、gmtime、asctime、ctime)可以獲得當前系統時間或是標准時間。

    用difftime函數可以計算兩個time_t類型的時間的差值,可以用於計時。用difftime(t2,t1)要比t2-t1更准確,因為C標准中並沒有規定time_t的單位一定是秒,而difftime會根據機器進行轉換,更可靠。

    說明:C標准庫中的函數,可移植性最好,性能也很穩定,但精度太低,只能精確到秒,對於一般的事件計時還算夠用,而對運算時間的計時就明顯不夠用了。

    2. clock()

    頭文件:time.h

    函數原型:clock_t clock(void);

    功能:該函數返回值是硬體滴答數,要換算成秒,需要除以CLK_TCK或者 CLK_TCKCLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000。

    說明:可以精確到毫秒,適合一般場合的使用。

    3. timeGetTime()

    頭文件:Mmsystem.h引用庫: Winmm.lib

    函數原型:DWORD timeGetTime(VOID);

    功能:返回系統時間,以毫秒為單位。系統時間是從系統啟動到調用函數時所經過的毫秒數。注意,這個值是32位的,會在0到2^32之間循環,約49.71天。

    說明:該函數的時間精度是五毫秒或更大一些,這取決於機器的性能。可用timeBeginPeriod和timeEndPeriod函數提高timeGetTime函數的精度。如果使用了,連續調用timeGetTime函數,一系列返回值的差異由timeBeginPeriod和timeEndPeriod決定。

    4. GetTickCount()

    頭文件:windows.h

    函數原型:DWORD WINAPI GetTickCount(void);

    功能:返回自設備啟動後的毫秒數(不含系統暫停時間)。

    說明:精確到毫秒。對於一般的實時控制,使用GetTickCount()函數就可以滿足精度要求。

    5. QueryPerformanceCounter()、QueryPerformanceFrequency()

    頭文件:windows.h

    函數原型:BOOLQueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);

    BOOLQueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

    功能:前者獲得的是CPU從開機以來執行的時鍾周期數。後者用於獲得你的機器一秒鍾執行多少次,就是你的時鍾周期。

    補充:LARGE_INTEGER既可以是一個8位元組長的整型數,也可以是兩個4位元組長的整型數的聯合結構, 其具體用法根據編譯器是否支持64位而定:

    在進行定時之前,先調用QueryPerformanceFrequency()函數獲得機器內部定時器的時鍾頻率,然後在需要嚴格定時的事件發生之前和發生之後分別調用QueryPerformanceCounter()函數,利用兩次獲得的計數之差及時鍾頻率,計算出事件經歷的精確時間。

    說明:這種方法的定時誤差不超過1微秒,精度與CPU等機器配置有關,一般認為精度為透微秒級。在Windows平台下進行高精度計時的時候可以考慮這種方法。

    6. gettimeofday()

    Linux C函數。

    頭文件:sys/time.h

    函數原型:int gettimeofday(struct timeval *tv,struct timezone *tz);

    說明:其參數tv是保存獲取時間結果的結構體,參數tz用於保存時區結果(若不使用則傳入NULL即可)。

    timeval的定義為:

    structtimeval{

    longtv_sec;//秒數

    longtv_usec;//微秒數

    }

    可見該函數可用於在linux中獲得微秒精度的時間。

    說明:使用這種方式計時,精度可達微秒。經驗證,在arm+linux的環境下此函數仍可使用。

㈧ c++庫中clock()函數的問題

C語言函數clock()

能:
返回處理器調用某個進程或函數所花費的時間。

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

㈨ c語言 時間函數

c語言時間函數:
1、獲得日歷時間函數:
可以通過time()函數來獲得日歷時間(Calendar Time),其原型為:time_t time(time_t * timer);
如果已經聲明了參數timer,可以從參數timer返回現在的日歷時間,同時也可以通過返回值返回現在的日歷時間,即從一個時間點(例如:1970年1月1日0時0分0秒)到現在此時的秒數。如果參數為空(NUL),函數將只通過返回值返回現在的日歷時間,比如下面這個例子用來顯示當前的日歷時間:
2、獲得日期和時間函數:
這里說的日期和時間就是平時所說的年、月、日、時、分、秒等信息。從第2節我們已經知道這些信息都保存在一個名為tm的結構體中,那麼如何將一個日歷時間保存為一個tm結構的對象呢?
其中可以使用的函數是gmtime()和localtime(),這兩個函數的原型為:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函數是將日歷時間轉化為世界標准時間(即格林尼治時間),並返回一個tm結構體來保存這個時間,而localtime()函數是將日歷時間轉化為本地時間。比如現在用gmtime()函數獲得的世界標准時間是2005年7月30日7點18分20秒,那麼用localtime()函數在中國地區獲得的本地時間會比世界標准時間晚8個小時,即2005年7月30日15點18分20秒。