最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ì)算的的評論 (共 條)

分享到微博請遵守國家法律
古蔺县| 易门县| 清涧县| 合阳县| 萝北县| 新安县| 班玛县| 万年县| 两当县| 康马县| 自治县| 兴国县| 临邑县| 靖江市| 龙井市| 萨迦县| 安陆市| 伊宁县| 鄂托克前旗| 自治县| 甘孜| 蓝田县| 锦州市| 汝阳县| 吴江市| 安远县| 清丰县| 麻栗坡县| 获嘉县| 哈尔滨市| 宁德市| 黄平县| 三都| 井陉县| 纳雍县| 海口市| 尖扎县| 天全县| 中西区| 伊川县| 德昌县|