????????最近在看深入理解計(jì)算機(jī)系統(tǒng)這本書,上面提到了在32位機(jī)器和64機(jī)器中int類型都占用4個(gè)字節(jié)。后來,查了The C Programming language這本書聚霜,里面有一句話是這樣的:Each compiler is free to choose appropriate sizes for its own hardware, subject only to the restriction that shorts and ints are at least 16bits, longs are at least 32bits, and short is no longer than int, which is no longer than long.意思大致是編譯器可以根據(jù)自身硬件來選擇合適的大小,但是需要滿足約束:short和int型至少為16位,long型至少為32位蝎宇,并且short型長(zhǎng)度不能超過int型弟劲,而int型不能超過long型。這即是說各個(gè)類型的變量長(zhǎng)度是由編譯器來決定的姥芥,而當(dāng)前主流的編譯器中一般是32位機(jī)器和64位機(jī)器中int型都是4個(gè)字節(jié)(例如函卒,GCC)。下面列舉在GCC編譯器下32位機(jī)器和64位機(jī)器各個(gè)類型變量所占字節(jié)數(shù):
????????????需要說明一下的是指針類型存儲(chǔ)的是所指向變量的地址撇眯,所以32位機(jī)器只需要32bit报嵌,而64位機(jī)器需要64bit。
轉(zhuǎn)自:http://blog.51cto.com/charlesxie/939680