C語言[4] 64位操作系統下,關於int佔用字節數爲4?

一直有個疑問,我的64位系統,爲什麼int=一個機器字長,sizeof(int)==4?原來和編譯器的數據模型有關

一.c語言數據佔用字節

32位:char 1    short  2   int 4  long 4  long long 8

64位:char 1   short 2    int 4 long 8 long long 8

二.原因  編譯器的數據模型(一般情況下windows64位一般使用LLP64模型;64位Unix,Linux使用的是LP64模型)

Datetype  LP64   ILP64   LLP64   ILP32    LP32

char           8          8         8            8          8

short          16       16       16           16        16

int               32       64       32           32        16

long            64       64       32           32         32 

pointer        64       64        64           32        32

  • 在這張表中,LP64,ILP64,LLP64是64位平臺上的字長模型,ILP32和LP32是32位平臺上的字長模型。
  • LP64意思是long和pointer是64位,
  • ILP64指int,long,pointer是64位,
  • LLP64指long long和pointer是64-bit的。
  • ILP32指int,long和pointer是32位的,
  • LP32指long和pointer是32位的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章