五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

c語言---結(jié)構(gòu)體空間大小如何計(jì)算的

2021-11-24 12:32 作者:風(fēng)菩提樹  | 我要投稿

結(jié)構(gòu)體空間大小如何計(jì)算的?

首先,有如下結(jié)構(gòu)體: ????????????????????? ?

struct?xx

{

int?a;

char?b;

short?c;

};

對于上面這個(gè)結(jié)構(gòu)體的大小,也許你跟我一樣是這樣計(jì)算的:

int? ?a;----->? 4 個(gè)字節(jié)? ?char? ?b; ------>1個(gè)字節(jié)? ? ? ?short? c;----->2個(gè)字節(jié)

(我這里所用的是64位系統(tǒng),所以int? a;是4個(gè)字節(jié)。)所以,計(jì)算出來,結(jié)構(gòu)體的空間大小是:4 + 1 +2 = 7字節(jié),可答案是8字節(jié)。

計(jì)算步驟:

(1)先假設(shè)結(jié)構(gòu)體中首個(gè)元素(如int a;)的第一個(gè)地址是0x0;

(2)元素本身的地址除以偏移量是一個(gè)整數(shù),即要存放元素的那個(gè)內(nèi)存地址 % 其本身的字節(jié)大小 ==0,如果取余數(shù)不等于零,則下個(gè)內(nèi)存地址繼續(xù)取余數(shù),若等于零,則存放該元素;

(3)存放完所有元素后,計(jì)算這塊內(nèi)存的大小, 若結(jié)果 除以結(jié)構(gòu)體元素中字節(jié)最大的那個(gè)數(shù) 是一個(gè)整數(shù),則結(jié)構(gòu)體的大小就是該結(jié)果。若不能整除,則結(jié)果加到整除的那個(gè)數(shù),那么這個(gè)數(shù)就是結(jié)構(gòu)體空間的大小。(比如:經(jīng)過3步的計(jì)算,得到的結(jié)果是9,而上面元素最大字節(jié)數(shù)是4,但9不能整除4,所以9加到12才可以整除4,所以結(jié)構(gòu)體空間的大小為12。再若計(jì)算得到的結(jié)果是8,可以整除4,所以結(jié)構(gòu)體空間的大小為8字節(jié)。

圖片分析如下:

驗(yàn)證:

#include <stdio> 

int main()

{

struct xx

{

int a;

char b;

short c;

};

printf("結(jié)構(gòu)體xx 的空間大小是:%ld字節(jié)\n",sizeof(struct xx ));

return 0;

}

例外:


c語言---結(jié)構(gòu)體空間大小如何計(jì)算的的評論 (共 條)

分享到微博請遵守國家法律
绥江县| 隆回县| 海南省| 武定县| 鹤山市| 瑞安市| 长垣县| 玉林市| 三穗县| 临高县| 邵阳市| 茶陵县| 内丘县| 开化县| 夹江县| 巨野县| 临颍县| 泗洪县| 宝应县| 香河县| 赤壁市| 女性| 从江县| 密山市| 茶陵县| 荆州市| 秦皇岛市| 贵港市| 灵台县| 唐河县| 慈溪市| 饶平县| 涿州市| 周宁县| 彩票| 英山县| 台东市| 屏边| 绍兴县| 柘城县| 兴安县|