1. 程式人生 > >32位和64位各變數位元組數

32位和64位各變數位元組數

Win64, 也就是X64編譯配置下:



char:1位元組;

short:2位元組;

int:4位元組;

long:4位元組;

long long:8位元組;

float:4位元組;

double:8位元組;

long double:8位元組;

wchar_t:2位元組;

bool:1位元組;



char*:8位元組;

bool*:8位元組;

short*:8位元組;

int*:8位元組;

long*:8位元組;

long long*:8位元組;

float*:8位元組;

double*:8位元組;

long double*:8位元組;

wchar_t*:8位元組;

下面是Win32, 也就是X86編譯配置下變數所佔位元組數:



char:1位元組;

short:2位元組;

int:4位元組;

long:4位元組;

longlong:8位元組;

float:4位元組;

double:8位元組;

long double:8位元組;

wchar_t:2位元組;

bool:1位元組;



char*:4位元組;

bool*:4位元組;

short*:4位元組;

int*:4位元組;

long*:4位元組;

long long*:4位元組;

float*:4位元組;

double*:4位元組;

long double*:4位元組;

wchar_t*:4位元組;

總結:經上述比較,一般變數在X86和X64系統下長度沒什麼區別,區別在於指標的 定址範圍從32位增加到了64位。如果考慮對64位系統下程式的相容性,指標是唯一需要注意的地方。從32位系統過渡到64位系統不同於從16位系統過渡 到32位系統,因為DOS系統下int只有2個位元組,而Windows系統下int是4個位元組,過渡到64位系統後int的位元組數沒有增加。如果使用 Windows系統程式設計,支援64位需要Visual Studio 2005/2008均可,而早期版本是不支援64位平臺的。