c語言各類型占用字節(jié) 在c語言中,int,char,short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)由什么決定?
在c語言中,int,char,short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)由什么決定?通常,char需要1個字節(jié),short需要2個字節(jié)。原因是一個字節(jié)可以代表一個ASCII碼。為了提高計算機的數(shù)據(jù)處理
在c語言中,int,char,short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)由什么決定?
通常,char需要1個字節(jié),short需要2個字節(jié)。原因是一個字節(jié)可以代表一個ASCII碼。為了提高計算機的數(shù)據(jù)處理能力,短用一個字節(jié)是遠遠不夠的,但受早年內(nèi)存容量和價格的限制,也不可能用兩個字節(jié)?,F(xiàn)在,內(nèi)存的大小不再是一個考慮因素,價格也不再是一個“問題”。CPU的數(shù)據(jù)寄存器是64位(8字節(jié)),32位CPU即將結束。因此,短8字節(jié)不再是一個夢想。所謂64位CPU,是指其數(shù)據(jù)寄存器(包括指令寄存器)的寬度為64位。它是一次讀取和存儲64位的最快方法,這是int類型數(shù)據(jù)的標準寬度。
在c語言中,int,char和short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)?
總之,ha:對于大多數(shù)32位機器,內(nèi)存是:char character type 1;int integer type 2;short 2;但是,不同的機器和不同的編譯器軟件會有所不同。
因此可以使用sizeof()函數(shù)進行測試。比如sizeof(char);這里補充我的答案,在回答這個問題之前,我還是一個單片機開發(fā)愛好者,C51單片機int確實是16位,2個字節(jié)?,F(xiàn)在我從事應用軟件開發(fā)。在這些編譯器(如vs和GCC)中,int通常是4位(32位或64位)。事實上,一個更官方的解釋是,編譯器可以根據(jù)自己的硬件選擇合適的大小,但需要滿足約束條件:short和int類型至少應該是16位,long type至少應該是32位,short type的長度不應該超過int type,而int type不應該超過long type。這意味著每種類型變量的長度由編譯器決定。