操作系统中的内存分配
生活随笔
收集整理的這篇文章主要介紹了
操作系统中的内存分配
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據類型對應字節數(32位,64位 int 占字節數)
一、程序運行平臺?????? 不同的平臺上對不同數據類型分配的字節數是不同的。?
????? 個人對平臺的理解是CPU+OS+Compiler,是因為:?
????? 1、64位機器也可以裝32位系統(x64裝XP);?
????? 2、32位機器上可以有16/32位的編譯器(XP上有tc是16位的,其他常見的是32位的);?
????? 3、即使是32位的編譯器也可以弄出64位的integer來(int64)。?
????? 以上這些是基于常見的wintel平臺,加上我們可能很少機會接觸的其它平臺(其它的CPU和OS),所以個人認為所謂平臺的概念是三者的組合。?
????? 雖然三者的長度可以不一樣,但顯然相互配合(即長度相等,32位的CPU+32位的OS+32位的Compiler)發揮的能量最大。?
????? 理論上來講 我覺得數據類型的字節數應該是由CPU決定的,但是實際上主要由編譯器決定(占多少位由編譯器在編譯期間說了算)。?
二、常用數據類型對應字節數?
????? 可用如sizeof(char),sizeof(char*)等得出
????? 32位編譯器:
????? char :1個字節?
????? char*(即指針變量): 4個字節(32位的尋址空間是2^32, 即32個bit,也就是4個字節。同理64位編譯器)?
????? short int : 2個字節?
????? int:??4個字節?
????? unsigned int : 4個字節?
????? float:??4個字節?
????? double:???8個字節?
????? long:???4個字節?
????? long long:??8個字節?
????? unsigned long:??4個字節?
????? 64位編譯器:
????? char :1個字節?
????? char*(即指針變量): 8個字節?
????? short int : 2個字節?
????? int:??4個字節?
????? unsigned int : 4個字節?
????? float:??4個字節?
????? double:???8個字節?
????? long:???8個字節?
????? long long:??8個字節?
????? unsigned long:??8個字節?
轉載于:https://www.cnblogs.com/pengfeiliu/p/3989244.html
總結
以上是生活随笔為你收集整理的操作系统中的内存分配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bios里怎么改硬盘模式 如何调整硬盘模
- 下一篇: Windows Phone开发手记-Wi