c語言之資料型別長度 分享
|2011-05-30 20:57
青雲清|瀏覽 219072 次
急2011-05-30 21:04
提問者採納
不要誤人子弟啊追問:搞清楚再貼出來
那你的答案是啥呢?追答:
16位(二)資料型別對應位元組數2,4,4,8,1
32位4,4,4,8,1
程式執行平台
不同的平台上對不同資料型別分配的位元組數是不同的。
個人對平台的理解是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個位元組
16位作業系統中,int 佔16位;在32位作業系統中,int 佔32位。但是現在人們已經習慣了 int 佔32位,因此在64位作業系統中,int 仍為32位。64位整型用 long long 或者 __int64
C語言之資料型別
恢復內容開始 在c語言中我們的資料型別分為以下幾大類 1 基本資料型別 int,float,double,char,bool c99中新加的 列舉enum 很多朋友對於enum被定義為是基本型別可能會有些迷惑,但是我們都知道列舉型別的特殊之處就是總能把資料變化為整形資料,我們可以認為列舉就是一種特殊...
C語言之資料型別 整數型別
c語言的變數型別 如 char x 1 儲存的值是 0000 0001 char y 1 儲存的值是 1111 1111 注意 int在16計算機中與short寬度一樣,在32以上的計算機中與long一樣 見原碼,補碼,反碼 資料溢位,是把高位捨棄還是低位捨棄?實驗 c 執行轉反彙編 因此 是捨棄高...
C語言之整型資料型別
整型資料就是整數。1 整型資料的分類 整型資料的一般分類如下 以下說明的在記憶體中所佔的位元組數均是在vs2012這個開發工具裡面的 基本型 型別說明符為int,在記憶體中佔4個位元組。短整型 型別說明符為short int或short。所佔位元組和取值範圍均與基本型相同。長整型 型別說明符為lon...