日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

各变量字节数

發(fā)布時(shí)間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 各变量字节数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

char????????? ? ? ? 1字節(jié);

short????????? ? ?? 2字節(jié);

int?????????????????? 4字節(jié);

long?????????????? 4字節(jié);

long long?????? 8字節(jié);

float?????????????? 4字節(jié);

double??????? ?? 8字節(jié);

long double?? 8字節(jié);

wchar_t???????? 2字節(jié);

bool????????????? 1字節(jié);

(指針都是8字節(jié))

char*??????????? 8字節(jié);

bool*??????????? 8字節(jié);

short*????????? 8字節(jié);

int*????????????? 8字節(jié);

long*?????????? 8字節(jié);

long long*?? 8字節(jié);

float*?????????? 8字節(jié);

double*?????? 8字節(jié);

long double*?? 8字節(jié);

wchar_t*????? 8字節(jié);

?

下面是Win32, 也就是X86編譯配置下變量所占字節(jié)數(shù)

char?????????   1字節(jié);

short????????   2字節(jié);

int      ?4字節(jié);

long     4字節(jié);

longlong   8字節(jié);

float     4字節(jié);

double    8字節(jié);

long double????? 8字節(jié);

wchar_t    2字節(jié);

bool    1字節(jié);

?(指針都是4字節(jié))

char*    4字節(jié);

bool*    4字節(jié);

short*    4字節(jié);

int*??????????????? 4字節(jié);

long*    4字節(jié);

long long*  4字節(jié);

float*    4字節(jié);

double*   4字節(jié);

long double* 4字節(jié);

wchar_t*   4字節(jié);

其他類型:

enum類型聲明不占內(nèi)存。
???? ? eg. enum Color { Red, Black }; 不占內(nèi)存。

????? enum變量定義占int型內(nèi)存。Win32下是占4B。
????? eg. Color clr; 占sizeof(int)

struct的成員對(duì)齊問題:

對(duì)于結(jié)構(gòu)體,編譯器會(huì)自動(dòng)進(jìn)行成員對(duì)齊以提高運(yùn)算效率。缺省情況下,編譯器會(huì)為結(jié)構(gòu)體的每個(gè)成員按其自然對(duì)界(按結(jié)構(gòu)體中的成員中size最大的成員對(duì)齊)條件分配空間,每個(gè)成員按照他們被聲明的順序在內(nèi)存中順序存儲(chǔ)。

聯(lián)合體(union)的結(jié)構(gòu)體空間要足夠大,要等于最長(zhǎng)的一個(gè)結(jié)構(gòu)體 變量的空間,但是這個(gè)最長(zhǎng)的空間要滿足以下條件:

1.要大于等于最長(zhǎng)一個(gè)結(jié)構(gòu)變量的空間

2.并且要能夠整除其他結(jié)構(gòu)變量的數(shù)據(jù)長(zhǎng)度(長(zhǎng)度要是元類型長(zhǎng)度的最小公倍數(shù))。

總結(jié):經(jīng)上述比較,一般變量在X86和X64系統(tǒng)下長(zhǎng)度沒什么區(qū)別,區(qū)別在于指針的 尋址范圍從32位增加到了64位。如果考慮對(duì)64位系統(tǒng)下程序的兼容性,指針是唯一需要注意的地方。從32位系統(tǒng)過渡到64位系統(tǒng)不同于從16位系統(tǒng)過渡 到32位系統(tǒng),因?yàn)镈OS系統(tǒng)下int只有2個(gè)字節(jié),而Windows系統(tǒng)下int是4個(gè)字節(jié),過渡到64位系統(tǒng)后int的字節(jié)數(shù)沒有增加。如果使用 Windows系統(tǒng)編程,支持64位需要Visual Studio 2005/2008均可,而早期版本是不支持64位平臺(tái)的。

轉(zhuǎn)載于:https://www.cnblogs.com/junglefish/p/5464100.html

總結(jié)

以上是生活随笔為你收集整理的各变量字节数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。