size_t是C內(nèi)部預(yù)肆羨螞定義的一個(gè)類(lèi)型:
創(chuàng)新互聯(lián)公司自2013年起,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元青河做網(wǎng)站,已為上家服務(wù),為青河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108
typedef
unsigned
int
size_t
因此這句代碼相當(dāng)于:unsigned
int
size=sizeof()(long
long);
而sizeof()函數(shù)的功能就是派型求變量在內(nèi)存中所占的字節(jié)數(shù)
因此,這句話(huà)的意思是將long
long類(lèi)型在內(nèi)存中所占的字節(jié)數(shù)賦值給裂埋無(wú)符號(hào)整型變量size
size_t是定義于stddef.h stdio.h stdlib.h string.h time.h wchar.h之中衡棚的一個(gè)無(wú)符號(hào)整數(shù)類(lèi)早攔旦型。它也陸擾是sizeof和_Alignof運(yùn)算符的結(jié)果類(lèi)型。
一般size_t指代的是對(duì)象大小或者對(duì)象數(shù)量,它同時(shí)也是表示數(shù)組下標(biāo)最安全的類(lèi)型。
我再次認(rèn)真的看了下耐灶 size_t的使用,
它是為了讓啟使程序可以跨平臺(tái),是代碼具體較好的可移植性。
size_t在32位系統(tǒng)中占4個(gè)字節(jié),而在64位系統(tǒng)占8個(gè)字節(jié)。
我想這是 系統(tǒng)判斷其不正確的原因所在吧。
給出(size_t)istrlen(str1)那么就通類(lèi)型比較了,就不存在問(wèn)題了。
而int類(lèi)型的i和strlen(str1)返回類(lèi)型是 size_t在不同的操作系統(tǒng)可能就不一樣。
所以,系統(tǒng)檢測(cè)出昌滑扮錯(cuò)。
但是,我不知道為什么,改成 i (int)strlen(str1)就還是不行呢?
size_t在C語(yǔ)言中就有了。
它是一種“整型”類(lèi)型,里面保存的是一個(gè)整態(tài)仔坦數(shù),就像int, long那樣。這種整數(shù)用來(lái)記錄一個(gè)大小(size)。size_t的全稱(chēng)應(yīng)該是size type,就是說(shuō)“一種用來(lái)記錄大小的數(shù)據(jù)類(lèi)型”。
通常我們用sizeof(XXX)操作,這個(gè)操作所得到的結(jié)果就是size_t類(lèi)型。
因?yàn)閟ize_t類(lèi)型的數(shù)據(jù)其實(shí)是保存了一個(gè)整數(shù),所以它也可以做加減乘除,也可以轉(zhuǎn)化為int并賦值給int類(lèi)型的變量。
類(lèi)似的還有wchar_t, ptrdiff_t。
wchar_t就是wide char type,“一種用來(lái)記錄一個(gè)寬字符的數(shù)據(jù)類(lèi)型”。
ptrdiff_t就是pointer difference type,“一種用來(lái)記錄兩個(gè)指針之間的距離的數(shù)據(jù)類(lèi)型”。
通常,size_t和ptrdiff_t都是用typedef來(lái)實(shí)現(xiàn)的。你可能在某個(gè)頭文件里面找到類(lèi)似的語(yǔ)句:
typedef unsigned int size_t;
而wchar_t則稍有不同。在一些舊的編譯器中,wchar_t也可能是用typedef來(lái)實(shí)現(xiàn),但是新的標(biāo)準(zhǔn)中wchar_t已經(jīng)是C/C++語(yǔ)言的關(guān)鍵字,wchar_t類(lèi)型的地帆桐位已經(jīng)和char, int的地位等同了。
在標(biāo)準(zhǔn)C/C++的語(yǔ)法中,只有int float char bool等基本的數(shù)據(jù)類(lèi)型,至于size_t,或size_type都是以后的編程人員為了方便記憶所定義的一些便于理解的由基本數(shù)據(jù)類(lèi)型的變體類(lèi)型。
例如:typedef int size_t;定義了size_t為整型戚凳。