size_t和int区别
size_t和int
??????size_t是一些C/C++標(biāo)準(zhǔn)在stddef.h中定義的。這個(gè)類(lèi)型足以用來(lái)表示對(duì)象的大小。size_t的真實(shí)類(lèi)型與操作系統(tǒng)有關(guān)。
在32位架構(gòu)中被普遍定義為:
typedef ??unsigned int size_t;
而在64位架構(gòu)中被定義為:
typedef ?unsigned long size_t;
????????size_t在32位架構(gòu)上是4字節(jié),在64位架構(gòu)上是8字節(jié),在不同架構(gòu)上進(jìn)行編譯時(shí)需要注意這個(gè)問(wèn)題。而int在不同架構(gòu)下都是4字節(jié),與size_t不同;且int為帶符號(hào)數(shù),size_t為無(wú)符號(hào)數(shù)。
為什么有時(shí)候不用int,而是用size_type或者size_t:
???????與int固定四個(gè)字節(jié)不同有所不同,size_t的取值range是目標(biāo)平臺(tái)下最大可能的數(shù)組尺寸,一些平臺(tái)下size_t的范圍小于int的正數(shù)范圍,又或者大于unsigned int. 使用Int既有可能浪費(fèi),又有可能范圍不夠大。
?
總結(jié)
以上是生活随笔為你收集整理的size_t和int区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: enable_shared_from_t
- 下一篇: define的多行定义