c/c++資料型別:
1、整形:int、long
2、字元型:char、wchar_t
3、布林型:bool
4、浮點型:float、double
5、指標
從表中可以看出這麼幾個問題,int型別在64位系統下竟然是4個位元組32位的。還有,這些玩意兒到底跟什麼有關係?是誰在控制著?從網上扒了各種解釋,大概有這麼兩點:
1、64位系統下,編譯器為了向前相容,將int型別自動編譯為4個位元組的了;
2、這些個玩意兒就是編譯器來控制的,不同的編譯器將int型別編譯成不同長度的,所以,使用什麼編譯器才是重要的,比如:32位系統,tc下的int就是16位長度的,vc就是32位長度的。
3、long long是標準的8 bytes,不受編譯器限制,所以,16位的依然也是8 bytes。
通過上面的介紹,應該大致明白整型的定義了吧,所以我們在使用整型變數的時候還是得小心的,尤其需要其所佔空間長度的時候,千萬不要想當然的認為int在32位系統下就是4個位元組。盡量使用sizeof取值,就是說最好在**中使用sizeof看下具體是多少,比如我win10系統64位,sizeof(double)就是8.
一、整形
下面一段話選自《c程式語言》:
short與long兩個限定符的引入可以為我們提供滿足實際需要的不同長度的整形數。int通常代表特定機器中證書的自然長度。short型別通常為16位,long型別通常為32位,int型別可以為16位或32位。各編譯器可以根據硬體特性自主選擇合適的型別長度,但要遵循下列限制:short與int型別至少為16位,long型別至少為32位,並且short型別不得長於int型別,而int型別不得長於long型別。
下面一段話選自《c++ primer》:
short、int和long型別都表示整型值,儲存空間的大小不同。一般,short型別為半個機器字長(word)長,int型別為乙個機器字長,而long型別為乙個或兩個機器字長(在32位機器中int型別和long型別通常字長是相同的)。
二、字元型
char型別通常佔據乙個位元組,對於用於擴充套件字符集的wchar_t型別,需要佔據兩個位元組。
易語言 資料型別及其長度
資料名稱 資料型別長度 位元組型0 255個位元組 短整數型 32,768 到 32,767 之間的數值,尺寸為 2 個位元組 整數型 2,147,483,648 到 2,147,483,647 之間的數值,尺寸為 4 個位元組 長整數型 9,223,372,036,854,775,808 到 9,...
小白常用C C 資料型別及其長度總結
c語言中資料型別的長度以及作用值域 unsigned char 單位元組0 255 signed char 單位元組 128 127 unsigned int 雙位元組0 65535 signed int 雙位元組 32768 32767 unsigned long 四位元組0 4294967295...
C C 資料型別長度
我們在編寫 c c 時肯定希望在32位和64位系統都能正常執行,那麼我們就需要注意基本資料型別的長度在32位與64位中的變化 另外這種變化還與編譯器相關。64位 gcc 是 lp64 即 long 和 pointer 是64位,具體的 gcc 編譯器 32 位 64位 char 1 1short 2...