自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++ clock()函數(shù)實(shí)現(xiàn)功能介紹

開(kāi)發(fā) 后端
我們今天要向大家介紹的是有關(guān)C++ clock()函數(shù)的一些基本概念以及應(yīng)用方式,目的就是希望能夠幫助大家輕松掌握這一應(yīng)用技巧。

C++編程語(yǔ)言中,有許多特定的函數(shù)應(yīng)用可以幫助我們實(shí)現(xiàn)許多不同的特定功能,方便程序員的實(shí)際開(kāi)發(fā)。比如C++ clock()函數(shù)主要是幫助我們實(shí)現(xiàn)計(jì)時(shí)的功能。而與其相關(guān)的數(shù)據(jù)類型是clock_t。在MSDN中,查得對(duì)clock函數(shù)定義如下:

  1. clock_t clock( void );  

這個(gè)函數(shù)返回從“開(kāi)啟這個(gè)程序進(jìn)程”到“程序中調(diào)用C++ clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù),在MSDN中稱之為掛鐘時(shí)間(wal-clock)。其中clock_t是用來(lái)保存時(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,它用來(lái)表示一秒鐘會(huì)有多少個(gè)時(shí)鐘計(jì)時(shí)單元,其定義如下:

  1. #define CLOCKS_PER_SEC ((clock_t)1000) 

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

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

當(dāng)然,你也可以用clock函數(shù)來(lái)計(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ī)器上,運(yùn)行結(jié)果如下:

  1. Time to do 10000000 empty loops is 0.03000 seconds  

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

【編輯推薦】

  1. C++函數(shù)傳遞三種方式解讀
  2. C++地址運(yùn)算符相關(guān)內(nèi)容詳解
  3. C++ static不同的應(yīng)用方式
  4. C++輸入輸出漢字具體應(yīng)用技巧分享
  5. 各個(gè)C++內(nèi)存區(qū)域功能對(duì)比
責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2011-06-17 16:09:04

freadfwrite

2010-02-03 16:35:45

C++回文

2010-02-05 18:09:28

C++ Doxygen

2010-02-01 10:32:01

C++文件操作

2011-07-13 11:34:58

CC++時(shí)間函數(shù)

2010-02-05 16:25:10

C++ strtok(

2010-02-01 16:54:18

C++打印地址信息

2011-08-22 17:25:31

LuaC++函數(shù)

2010-02-01 15:26:44

C++ inline函

2011-07-15 01:29:39

C++析構(gòu)函數(shù)

2011-07-20 17:16:50

C++重載函數(shù)

2010-02-01 09:18:49

C++函數(shù)指針

2010-01-11 15:21:18

C++語(yǔ)言

2020-09-28 08:12:59

CC++時(shí)間

2010-02-05 15:59:26

C++函數(shù)重載

2010-01-08 17:01:46

C++開(kāi)發(fā)工具

2024-01-31 08:33:06

C++編程計(jì)算器

2010-01-11 11:02:59

Visual C++

2010-01-15 15:52:18

CC++

2010-01-15 10:41:06

CC++
點(diǎn)贊
收藏

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