回覆列表
-
1 # 使用者863120025082
-
2 # 使用者567575117764
int是整形變數,在16位作業系統中,int型佔兩個位元組。
-
3 # 快樂的在水一方
int型,一個數字佔一個字元。16位每個字元佔兩個位元組,32位佔四個位元組。
-
4 # 使用者352755821118
第一個解釋是int據說是根據不同的編譯器在定義的,不同的編譯器int的位元組是不一樣的,但是大多的編譯器int都佔4個位元組。
第二個解釋是作業系統16位的時候,int 2位元組,作業系統32位的時候,int 4位元組,由於32位系統之前佔主流地位,實際現在就算是64位系統,出於相容性考慮,int也是4位元組的。
C語言標準層面來說,沒有明確定義。只能確定sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)。
從實現角度來說,64位Linux採用的是LP64模型,這意味著Long, Pointer都是8位元組。32位Linux採用的是ILP32模型,也就是Int Long Pointer均為4位元組。
參考:將 Linux 應用程式移植到 64 位系統上
知乎不支援插入table,用LaTeX強行畫了個,將就看吧。(中途滑鼠戳外面關掉了居然不儲存公式?)
補充:……沒仔細看題預設當Linux了,Windows下32位是ILP32(你猜是什麼意思),64位是LLP64。