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

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

分享到微博請遵守國家法律
门头沟区| 静海县| 台山市| 油尖旺区| 沾益县| 侯马市| 旬阳县| 大冶市| 清徐县| 泸溪县| 历史| 河北区| 尚义县| 无为县| 宜良县| 古丈县| 衡阳县| 崇礼县| 郯城县| 蛟河市| 阜新| 柳江县| 镇江市| 桃园县| 贵州省| 于都县| 东乡县| 娱乐| 铜梁县| 虎林市| 墨脱县| 定南县| 鄱阳县| 曲松县| 长宁区| 井研县| 河东区| 武安市| 即墨市| 万山特区| 赤城县|