clock()是C/C++中的計(jì)時(shí)函數(shù),而與其相關(guān)的數(shù)據(jù)類型是clock_t。
創(chuàng)新互聯(lián)建站專注于樟樹(shù)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供樟樹(shù)營(yíng)銷型網(wǎng)站建設(shè),樟樹(shù)網(wǎng)站制作、樟樹(shù)網(wǎng)頁(yè)設(shè)計(jì)、樟樹(shù)網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造樟樹(shù)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供樟樹(shù)網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
它的具體功能是返回處理器調(diào)用某個(gè)進(jìn)程或函數(shù)所花費(fèi)的時(shí)間。函數(shù)返回從“開(kāi)啟這個(gè)程序進(jìn)程”到“程序中調(diào)用clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù),其中clock_t是用來(lái)保存時(shí)間的數(shù)據(jù)類型。
在time.h文件中,我們可以找到對(duì)它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其實(shí)就是long,即長(zhǎng)整形。該函數(shù)返回值是硬件滴答數(shù),要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個(gè)量的值都是1000,這表示硬件滴答1000下是1秒,因此要計(jì)算一個(gè)進(jìn)程的時(shí)間,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、編譯器優(yōu)化,for循環(huán)實(shí)際根本沒(méi)執(zhí)行,直接跳過(guò)去了,所以時(shí)間為0。
2、clock計(jì)算的是程序占用cpu的時(shí)間,如果你的程序執(zhí)行的動(dòng)作很少,那么clock算出的時(shí)間也很少。
3、建議使用time gettimeofday函數(shù)來(lái)計(jì)時(shí)。
擴(kuò)展資料:
C語(yǔ)言中clock()函數(shù)的程序例1:(TC下運(yùn)行通過(guò))
#include?stdio.h
#include?time.h
int?main(void)
{
clock_t?start,?end;
start?=?clock();
delay(2000);
end?=?clock();
printf("The?time?was:?%f\n",?(double)(end?-?start)?/?CLK_TCK);
return?0;
}
說(shuō)明:CLK_TCK?定義在TC中的time.h中:#define?CLK_TCK18.2。
在VC6.0中也有關(guān)于CLK_TCK的宏定義,不過(guò)其值不再是18.2,而是1000。
實(shí)際上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。
參考資料來(lái)源:百度百科-clock()
feof(fp)函數(shù),如果文件沒(méi)有讀完,返回0,如果讀完了返回1,所以feof(fp)=0時(shí),即文件沒(méi)有讀完的時(shí)候,!feof(fp)為真,執(zhí)行while里面的代碼,意思就是,文件沒(méi)有讀完,執(zhí)行while里面的語(yǔ)句,反之,跳出while循環(huán)。
原型:extern int strcmp(const char *s1,const char * s2);
用法:#include string.h
功能:比較字符串s1和s2。
相關(guān)函數(shù):wcscmp
一般形式:strcmp(字符串1,字符串2)
說(shuō)明:
當(dāng)s1s2時(shí),返回值0
當(dāng)s1=s2時(shí),返回值=0
當(dāng)s1s2時(shí),返回值0
即:兩個(gè)字符串自左向右逐個(gè)字符相比(按ASCII值大小相比較),直到出現(xiàn)不同的字符或遇'\0'為止。如:
"A""B" "a""A" "computer""compare"
特別注意:strcmp(const char *s1,const char * s2)這里面只能比較字符串,不能比較數(shù)字等其他形式的參數(shù)。