c語言中 srand(time(NULL)); 的意思是:使用當(dāng)前時(shí)間進(jìn)行隨機(jī)數(shù)發(fā)生器的初始化。time_t time(time_t *t); 是C標(biāo)準(zhǔn)庫函數(shù),如果t是空指針(NULL),直接返回當(dāng)前時(shí)間。
創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,內(nèi)蒙古服務(wù)器托管,內(nèi)蒙古服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
而c/c++庫中的srand就是為這一次的隨機(jī)數(shù)生成設(shè)置種子。s代表的就是seed的意思。time_t time(time_t time);該函數(shù)返回自計(jì)算機(jī)計(jì)時(shí)的某個(gè)時(shí)刻起到現(xiàn)在所過去的秒數(shù)。
為了使rand的結(jié)果更“真”一些,也就是令其返回值更具有隨機(jī)性(不確定性),C語言在stdlib.h中還提供了srand函數(shù),通過該函數(shù)可以設(shè)置一個(gè)隨機(jī)數(shù)種子,一般用當(dāng)前時(shí)間的毫秒數(shù)來做參數(shù)。
而time(NULL)這個(gè)函數(shù)的返回值是作為srand函數(shù)的參數(shù)的,意思是以現(xiàn)在的系統(tǒng)時(shí)間作為隨機(jī)數(shù)的種子來產(chǎn)生隨機(jī)數(shù),至于NULL這個(gè)參數(shù),因?yàn)檫@個(gè)話就返回到現(xiàn)在時(shí)間時(shí)候的long秒,只有設(shè)置成NULL才能獲得系統(tǒng)的時(shí)間。
srand() 是隨即數(shù)的種子,我們知道,c中的隨機(jī)數(shù)如果不給隨機(jī)數(shù)種一個(gè)種子,隨即的數(shù)將完全一樣。 time(NULL) 返回的一個(gè)以時(shí)間為基數(shù)的種子。
即long。關(guān)于time_t time(0):time_t被定義為長整型,它返回從1970年1月1日零時(shí)零分零秒到目前為止所經(jīng)過的時(shí)間,單位為秒。函數(shù)rand()是真正的隨機(jī)數(shù)生成器,而srand()會(huì)設(shè)置供rand()使用的隨機(jī)數(shù)種子。
1、可以將其除以常數(shù)CLOCKS_PER_SEC再乘以1000以轉(zhuǎn)化為毫秒數(shù)。
2、MutliMedia Timer可以達(dá)到ms級別,但是精度沒有嚴(yán)格的保障。
3、C/C++中的日期和時(shí)間 摘要: 本文從介紹基礎(chǔ)概念入手,探討了在C/C++中對日期和時(shí)間操作所用到的數(shù)據(jù)結(jié)構(gòu)和函數(shù),并對計(jì)時(shí)、時(shí)間的獲取、時(shí)間的計(jì)算和顯示格式等方面進(jìn)行了闡述。
4、time_t 實(shí)際上就是長整型。time() -- 獲取當(dāng)前系統(tǒng)時(shí)鐘,是1970年1月1日到現(xiàn)在的秒數(shù);localtime() -- 將系統(tǒng)時(shí)間轉(zhuǎn)換成本地時(shí)間(考慮時(shí)區(qū)上的時(shí)間差);asctime -- 將時(shí)間轉(zhuǎn)換成字符串形式。
使用time()函數(shù)。它在頭文件time.h中 具體使用方法如下:time_t a,b;//time_t是表示時(shí)間的結(jié)構(gòu)體,你可以在time.h中找到它的原型。a=time(null);//表示獲取當(dāng)前的機(jī)器時(shí)間。
在程序最開始的地方獲取一下系統(tǒng)當(dāng)前時(shí)間并保存;在程序結(jié)束的地方獲取一下系統(tǒng)當(dāng)前時(shí)間并保存;兩者相減即為程序運(yùn)行時(shí)間,將其打印出來便可。
,使用一個(gè)不做任何操作的空循環(huán),來占用系統(tǒng)時(shí)間 如for(i=0;i1000000;i++);具體循環(huán)次數(shù)自行調(diào)節(jié)。2,使用winAPI,sleep。
可以將其除以常數(shù)CLOCKS_PER_SEC再乘以1000以轉(zhuǎn)化為毫秒數(shù)。
下面,我將說明在C/C++中怎樣使用日期的時(shí)間功能。 介紹 計(jì)時(shí) C/C++中的計(jì)時(shí)函數(shù)是clock(),而與其相關(guān)的數(shù)據(jù)類型是clock_t。
使用DateTime.Now函數(shù) DateTime 當(dāng)前時(shí)間 = DateTime.Now;string 毫秒 = 當(dāng)前時(shí)間.ToString(@ss\:fff); //顯示2位秒數(shù)和秒數(shù)后面3位2使用高精度計(jì)時(shí)器API //用于得到高精度計(jì)時(shí)器(如果存在這樣的計(jì)時(shí)器)的值。
唯有Sleep函數(shù),只有Sleep函數(shù)參數(shù)是用毫秒,比如1000毫秒等于1秒。
直接利用Pentium CPU內(nèi)部時(shí)間戳進(jìn)行計(jì)時(shí)的高精度計(jì)時(shí)手段。在 Intel Pentium以上級別的CPU中,有一個(gè)稱為“時(shí)間戳(Time Stamp)”的部件,它以64位無符號整型數(shù)的格式,記錄了自CPU上電以來所經(jīng)過的時(shí)鐘周期數(shù)。
使用time()函數(shù)。它在頭文件time.h中 具體使用方法如下:time_t a,b;//time_t是表示時(shí)間的結(jié)構(gòu)體,你可以在time.h中找到它的原型。a=time(null);//表示獲取當(dāng)前的機(jī)器時(shí)間。
clock()函數(shù) 頭文件:time.h 作用:返回從程序執(zhí)行開始的時(shí)鐘周期數(shù) 返回值類型:clock_t型,為自定義的長整型 可以將其除以常數(shù)CLOCKS_PER_SEC再乘以1000以轉(zhuǎn)化為毫秒數(shù)。
唯有Sleep函數(shù),只有Sleep函數(shù)參數(shù)是用毫秒,比如1000毫秒等于1秒。
不行的,這樣做是不準(zhǔn)確的,cpu的頻率也會(huì)影響這段程序的運(yùn)行時(shí)間,用sleep函數(shù)可以實(shí)現(xiàn)。
為了使rand的結(jié)果更“真”一些,也就是令其返回值更具有隨機(jī)性(不確定性),C語言在stdlib.h中還提供了srand函數(shù),通過該函數(shù)可以設(shè)置一個(gè)隨機(jī)數(shù)種子,一般用當(dāng)前時(shí)間的毫秒數(shù)來做參數(shù)。
用sleep肯定是至少50ms。MutliMedia Timer可以達(dá)到ms級別,但是精度沒有嚴(yán)格的保障。
clock()函數(shù) 頭文件:time.h 作用:返回從程序執(zhí)行開始的時(shí)鐘周期數(shù) 返回值類型:clock_t型,為自定義的長整型 可以將其除以常數(shù)CLOCKS_PER_SEC再乘以1000以轉(zhuǎn)化為毫秒數(shù)。
timeGetTime() 頭文件:Mmsystem.h 引用庫: Winmm.lib 函數(shù)原型:DWORD timeGetTime(VOID); 功能:返回系統(tǒng)時(shí)間,以毫秒為單位。系統(tǒng)時(shí)間是從系統(tǒng)啟動(dòng)到調(diào)用函數(shù)時(shí)所經(jīng)過的毫秒數(shù)。
用sleep肯定是至少50ms。MutliMedia Timer可以達(dá)到ms級別,但是精度沒有嚴(yán)格的保障。
在標(biāo)準(zhǔn)C/C++中,最小的計(jì)時(shí)單位是一毫秒。
如果你要更精確的,就需要使用系統(tǒng)API來獲取了。windows sdk下面有幾個(gè)獲取CPU時(shí)鐘的函數(shù),我記得一個(gè)gettickcount(),返回開機(jī)到調(diào)用時(shí)的毫秒數(shù)(像360之類的軟件的計(jì)算系統(tǒng)啟動(dòng)時(shí)間就是調(diào)用這個(gè)api)可以用來計(jì)算運(yùn)行時(shí)間。
本文名稱:c語言打印毫秒函數(shù) c語言毫秒計(jì)時(shí)函數(shù)
網(wǎng)頁地址:http://chinadenli.net/article21/dehgdjd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、微信小程序、標(biāo)簽優(yōu)化、App開發(fā)、Google、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)