偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C++計(jì)時(shí)具體操作方法詳解

開發(fā) 后端
C++計(jì)時(shí)的實(shí)現(xiàn)主要就是通過C++編程語言中的clock()函數(shù)來實(shí)現(xiàn)。那么具體的操作方法又該是怎樣的呢?接下來就讓我們一起看看吧。

C++編程語言應(yīng)用范圍廣泛,功能強(qiáng)大,我們?cè)谏掀恼轮芯鸵呀?jīng)對(duì)C++時(shí)間的基本概念進(jìn)行了一個(gè)簡(jiǎn)單的介紹?,F(xiàn)在,我們將進(jìn)一步對(duì)C++計(jì)時(shí)的具體操作進(jìn)行解讀,讓大家能從中獲得更多的知識(shí)。#t#

C++計(jì)時(shí)操作中所用到的函數(shù)是clock(),而與其相關(guān)的數(shù)據(jù)類型是clock_t。在MSDN中,查得對(duì)clock函數(shù)定義如下:

clock_t clock( void );

這個(gè)C++計(jì)時(shí)的函數(shù)返回從“開啟這個(gè)程序進(jìn)程”到“程序中調(diào)用clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù),在MSDN中稱之為掛鐘時(shí)間(wal-clock)。其中clock_t是用來保存時(shí)間的數(shù)據(jù)類型,在time.h文件中,我們可以找到對(duì) 它的定義:

 

  1. #ifndef _CLOCK_T_DEFINED   
  2. typedef long clock_t;   
  3. #define _CLOCK_T_DEFINED   
  4. #endif  

很明顯,clock_t是一個(gè)長(zhǎng)整形數(shù)。在time.h文件中,還定義了一個(gè)常量CLOCKS_PER_SEC,它用來表示一秒鐘會(huì)有多少個(gè)時(shí)鐘計(jì)時(shí)單元,其定義如下:

#define CLOCKS_PER_SEC ((clock_t)1000)

可以看到每過千分之一秒(1毫秒),調(diào)用clock()函數(shù)返回的值就加1。下面舉個(gè)C++計(jì)時(shí)的例子,你可以使用公式clock()/CLOCKS_PER_SEC來計(jì)算一個(gè)進(jìn)程自身的運(yùn)行時(shí)間:

 

  1. void elapsed_time()   
  2. {   
  3. printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);   
  4. }  

 

當(dāng)然,你也可以用clock函數(shù)來計(jì)算你的機(jī)器運(yùn)行一個(gè)循環(huán)或者處理其它事件到底花了多少時(shí)間:

 

  1. #include “stdio.h”   
  2. #include “stdlib.h”   
  3. #include “time.h”   
  4. int main( void )   
  5. {   
  6. long i = 10000000L;   
  7. clock_t start, finish;   
  8. double duration;   
  9. /* 測(cè)量一個(gè)事件持續(xù)的時(shí)間*/   
  10. printf( "Time to do %ld empty loops is ", i );   
  11. start = clock();   
  12. while( i-- ) ;   
  13. finish = clock();   
  14. duration = (double)(finish - start) / CLOCKS_PER_SEC;   
  15. printf( "%f seconds\n", duration );   
  16. system("pause");   

 

在筆者的機(jī)器上,C++計(jì)時(shí)操作后的運(yùn)行結(jié)果如下:

Time to do 10000000 empty loops is 0.03000 seconds

上面我們看到時(shí)鐘計(jì)時(shí)單元的長(zhǎng)度為1毫秒,那么計(jì)時(shí)的精度也為1毫秒,那么我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使C++計(jì)時(shí)的精度更高呢?通過嘗試,你會(huì)發(fā)現(xiàn)這樣是不行的。在標(biāo)準(zhǔn)C/C++中,最小的計(jì)時(shí)單位是一毫秒。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-02 13:57:31

C++解析#pragm

2010-02-02 17:13:35

C++ Endian

2010-02-02 16:23:46

C++實(shí)現(xiàn)WPF動(dòng)畫

2009-12-30 16:48:52

Silverlight

2010-04-02 08:42:32

Oracle 游標(biāo)

2010-01-27 18:00:57

Android開機(jī)自啟

2010-01-28 16:14:33

Android安裝卸載

2010-01-07 15:37:35

VB.NET ForNext循環(huán)

2010-03-05 15:27:06

Python文件路徑

2010-04-13 17:00:27

Oracle NLS_

2010-02-01 14:33:05

C++實(shí)現(xiàn)RTTI

2010-03-19 14:19:58

Python正則表達(dá)式

2010-03-05 17:06:26

Python顯示UTF

2010-03-24 10:06:37

Python嵌入C++

2010-03-30 09:37:01

Oracle導(dǎo)出工具

2009-09-10 14:49:00

2009-12-30 15:47:40

Silverlight

2010-02-03 10:23:47

C++操作符重載

2011-03-17 09:06:58

iptables映射端口

2010-02-04 11:23:25

C++反射機(jī)制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)