在linux中,32位元平台和64位元平台中的short都佔2個位元組;linux中只有long長整型、void(c語言中,void為「不確定型別」)在32位元中是4個位元組,在64位元中是8個位元組。
本教學操作環境:linux7.3系統、Dell G3電腦。
看出只有long(長整型),void*(c語言中,void為「不確定類型」),在32位元4個位元組,在64位元8個位元組。
擴充知識
char佔1字節,short佔2 個位元組,int 、float、long 都佔4 個位元組,double 佔8 個位元組
指標長度和位址匯流排有關。因為指標記錄的就是一個位址,那麼32位元的就是4位元組,64位元的就是8位元組。
發現一個問題,以下程式碼是在win10 64位元系統下跑的,理應來說int佔8個字節,後來我想錯了;我建立的工程是win32控制台應用,意味著編譯器就是32位元的--「int佔多少個位元組既由編譯器決定,也由CPU或虛擬機器或作業系統決定,但歸根究底是由編譯器決定。」
64位元win10下,codeblocks win32 控制台下
#include "iostream" using namespace std; int main() { double *p = NULL; cout<<sizeof(char)<<endl; cout<<sizeof(short)<<endl; cout<<sizeof(int)<<endl; cout<<sizeof(float)<<endl; cout<<sizeof(long)<<endl; cout<<sizeof(double)<<endl; cout<< sizeof(char *) << sizeof(short *) << sizeof(int *) << sizeof(p) << sizeof(double *)<<endl; return 0; }
結果為:
1 2 4 4 4 8 44444
由上可知,char佔1字節,short佔2 字節,int 、float、long 都佔4 字節,double 佔8 個位元組,任意類型的指標都佔4個位元組;
推薦學習:Linux影片教學
以上是linux中short有幾個位元組的詳細內容。更多資訊請關注PHP中文網其他相關文章!