夜间福利网站,免费动漫av,一级做a爰片久久毛片免费陪,夜夜骑首页,黄色毛片视频,插插插操操操,综合av色

解析C語(yǔ)言結(jié)構(gòu)體對(duì)齊(內(nèi)存對(duì)齊問(wèn)題)

時(shí)間:2025-11-19 12:09:22 C語(yǔ)言 我要投稿

解析C語(yǔ)言結(jié)構(gòu)體對(duì)齊(內(nèi)存對(duì)齊問(wèn)題)

  C語(yǔ)言結(jié)構(gòu)體對(duì)齊也是老生常談的話題了。基本上是面試題的必考題。內(nèi)容雖然很基礎(chǔ),但一不小心就會(huì)弄錯(cuò)。寫出一個(gè)struct,然后sizeof,你會(huì)不會(huì)經(jīng)常對(duì)結(jié)果感到奇怪?sizeof的結(jié)果往往都比你聲明的變量總長(zhǎng)度要大,這是怎么回事呢?下面讓我們一起來(lái)學(xué)習(xí)一下相關(guān)的知識(shí)吧!

  解析C語(yǔ)言結(jié)構(gòu)體對(duì)齊(內(nèi)存對(duì)齊問(wèn)題)

  開始學(xué)的時(shí)候,也被此類問(wèn)題困擾很久。其實(shí)相關(guān)的文章很多,感覺說(shuō)清楚的不多。結(jié)構(gòu)體到底怎樣對(duì)齊?

  有人給對(duì)齊原則做過(guò)總結(jié),具體在哪里看到現(xiàn)在已記不起來(lái),這里引用一下前人的經(jīng)驗(yàn)(在沒(méi)有#pragma pack宏的情況下):

  原則1、數(shù)據(jù)成員對(duì)齊規(guī)則:結(jié)構(gòu)(struct或聯(lián)合union)的數(shù)據(jù)成員,第一個(gè)數(shù)據(jù)成員放在offset為0的地方,以后每個(gè)數(shù)據(jù)成員存儲(chǔ)的起始位置要從該成員大小的整數(shù)倍開始(比如int在32位機(jī)為4字節(jié),則要從4的整數(shù)倍地址開始存儲(chǔ))。

  原則2、結(jié)構(gòu)體作為成員:如果一個(gè)結(jié)構(gòu)里有某些結(jié)構(gòu)體成員,則結(jié)構(gòu)體成員要從其內(nèi)部最大元素大小的整數(shù)倍地址開始存儲(chǔ)。(struct a里存有struct b,b里有char,int,double等元素,那b應(yīng)該從8的整數(shù)倍開始存儲(chǔ)。)

  原則3、收尾工作:結(jié)構(gòu)體的總大小,也就是sizeof的結(jié)果,必須是其內(nèi)部最大成員的整數(shù)倍,不足的要補(bǔ)齊。

  這三個(gè)原則具體怎樣理解呢?我們看下面幾個(gè)例子,通過(guò)實(shí)例來(lái)加深理解。

【解析C語(yǔ)言結(jié)構(gòu)體對(duì)齊(內(nèi)存對(duì)齊問(wèn)題)】相關(guān)文章:

講解C語(yǔ)言編程中的結(jié)構(gòu)體對(duì)齊01-17

C語(yǔ)言結(jié)構(gòu)體定義12-14

C語(yǔ)言結(jié)構(gòu)體教程12-15

Word兩端對(duì)齊和分散對(duì)齊12-05

C語(yǔ)言中內(nèi)存分配問(wèn)題09-20

2016計(jì)算機(jī)二級(jí)C++內(nèi)存對(duì)齊詳細(xì)使用指南11-01

C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針03-21

C語(yǔ)言的內(nèi)存使用03-06

如何實(shí)現(xiàn)CSS右對(duì)齊08-21

  • 相關(guān)推薦