C++ clock()解析如何使用時鐘計時的應用
更新時間:2013年06月04日 11:24:52 作者:
本篇文章是對c++中的clock()函數進行了詳細的分析介紹,需要的朋友參考下
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。
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
long n=0;
clock_t start,finish;
start=clock();
while(n<1000000000)
n++;
finish=clock();
cout<<(finish-start)/CLOCKS_PER_SEC<<endl;
return 0;
}
在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。
復制代碼 代碼如下:
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
long n=0;
clock_t start,finish;
start=clock();
while(n<1000000000)
n++;
finish=clock();
cout<<(finish-start)/CLOCKS_PER_SEC<<endl;
return 0;
}
相關文章
使用udp發(fā)送>=128K的消息會報ENOBUFS的錯誤的解決方法
在項目中選擇了unix域的數據報套接口。在使用過程中碰到了如下,問題:發(fā)送<128K的消息時,客戶、進程可以正常收發(fā)消息;發(fā)送>=128K的消息時,發(fā)送端(sendto)返回ENOBUFS的錯誤。下面小編來詳細說下2019-05-05