在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

經(jīng)常聽說字節(jié)對(duì)齊,那什么是對(duì)齊?

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2023-01-31 15:24 ? 次閱讀
在計(jì)算結(jié)構(gòu)體長度的時(shí)候,我們經(jīng)常聽說字節(jié)對(duì)齊。那什么是對(duì)齊?
如果一個(gè)變量在內(nèi)存中的地址正好是它長度的整數(shù)倍,我們就稱它為自然對(duì)齊。
比如在32位的操作系統(tǒng)中,如果一個(gè)整型變量的地址是0x04,那么它就是自然對(duì)齊。
3b05c184-a07b-11ed-bfe3-dac502259ad0.png而且操作系統(tǒng)也確實(shí)是這么做的,隨便定義一個(gè)整型變量,打印它的地址,結(jié)果一定是4的倍數(shù)。
int main()
{
int num;
printf("%p
", &num);
return 0;
}
這樣做的根本原因還是為了提高CPU的訪問效率。如果一個(gè)整型變量存放在0x02地址上,那么CPU首先會(huì)讀取兩個(gè)字節(jié)的short,再讀取后面的兩個(gè)字節(jié),最后把兩個(gè)部分合成一個(gè)整數(shù),很顯然這樣的效率會(huì)比較低。
3b15559a-a07b-11ed-bfe3-dac502259ad0.png ?有了這個(gè)基礎(chǔ),我們?cè)賮碛?jì)算結(jié)構(gòu)體的長度,就會(huì)簡(jiǎn)單的多。
struct Test
{
    char ch;
    int num;
    short id;
charc;
};
比如這個(gè)結(jié)構(gòu),char類型占一個(gè)字節(jié),int占四個(gè)字節(jié),但是num不能直接跟在ch的后面,否則num的地址肯定不是4的整數(shù)倍,所以需要在ch的后面空3個(gè)字節(jié)。
3b256cc8-a07b-11ed-bfe3-dac502259ad0.png
接下來輪到id,在32位系統(tǒng)中short占2個(gè)字節(jié),直接跟在num的后面就行。

3b401352-a07b-11ed-bfe3-dac502259ad0.png

最后一個(gè)是c,因?yàn)橹徽家粋€(gè)字節(jié),所以直接放在最后就好。

3b50104a-a07b-11ed-bfe3-dac502259ad0.png ?那結(jié)構(gòu)體的長度是不是11個(gè)字節(jié)呢,不是的,結(jié)構(gòu)體的長度一定是最長成員的整數(shù)倍,所以在c的后面還空了一個(gè)字節(jié),結(jié)構(gòu)體一共占了12字節(jié)。
記住幾個(gè)原則。
一、結(jié)構(gòu)體變量的首地址是最長成員長度的整數(shù)倍。比如我們計(jì)算的這個(gè)結(jié)構(gòu)體,它的首地址一定是4的整數(shù)倍。
二、每個(gè)成員相對(duì)結(jié)構(gòu)體首地址的偏移量,一定是該成員長度的整數(shù)倍。
三、結(jié)構(gòu)體的總長度是最長成員長度的整數(shù)倍。


四、如果結(jié)構(gòu)體內(nèi)有成員長度大于處理器的位數(shù),那么就以處理器的位數(shù)作為對(duì)齊單位,比如在32位操作系統(tǒng)中,double占8字節(jié),我們還是按照4字節(jié)為對(duì)齊單位。

3b5fe326-a07b-11ed-bfe3-dac502259ad0.png

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7022

    瀏覽量

    124674
  • 字節(jié)
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    14007
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    28744

原文標(biāo)題:字節(jié)對(duì)齊

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PCB布局太亂? Altium Designer這個(gè)快捷鍵幫你一秒對(duì)齊全場(chǎng)

    在做PCB設(shè)計(jì)的時(shí)候,你是否也遇到過這種情況: 器件擺好但總感覺歪歪扭扭? 有些元件間距不一致,看著難受? 想對(duì)齊又一個(gè)個(gè)拖動(dòng),累得不行? 別急!今天教你一招? Altium Designer 里
    的頭像 發(fā)表于 04-14 09:09 ?1265次閱讀
    PCB布局太亂? Altium Designer這個(gè)快捷鍵幫你一秒<b class='flag-5'>對(duì)齊</b>全場(chǎng)

    圖解邊沿對(duì)齊,中心對(duì)齊PWM(可下載)

    在說邊沿對(duì)齊,中心對(duì)齊前,我們先來段鋪墊,PWM 又稱脈沖寬度調(diào)制,我們通過調(diào) 節(jié)脈沖的占空比,我們可以控制電壓的大小(比如我們滿占空比時(shí)電壓為 12V,我們可以通 過調(diào)節(jié)占空比讓電壓變?yōu)?7V
    發(fā)表于 03-31 15:15 ?0次下載

    Gerber文件中元件與焊接無法對(duì)齊

    同一塊板子,轉(zhuǎn)換成Gerber文件后,進(jìn)行DFM分析時(shí),元件無法與焊接對(duì)齊,導(dǎo)致全部貼片元件報(bào)錯(cuò)。如果直接采用AD源文件進(jìn)行DFM分析則不會(huì)出現(xiàn)。
    發(fā)表于 02-19 09:02

    Orcad繪制原理圖的元器件對(duì)齊方法

    在使用Orcad軟件繪制原理圖的時(shí)候,為了使原理圖繪制的美觀一些,有時(shí)候也希望像PCB設(shè)計(jì)一樣,將所有的器件都進(jìn)行對(duì)齊,這里我們給大家介紹下,原理圖器件對(duì)齊的方法,方便大家在原理圖設(shè)計(jì)的時(shí)候也可以將元器件進(jìn)行對(duì)齊
    的頭像 發(fā)表于 02-07 10:33 ?902次閱讀
    Orcad繪制原理圖的元器件<b class='flag-5'>對(duì)齊</b>方法

    如何保證電平轉(zhuǎn)換前后數(shù)據(jù)的相位對(duì)齊

    請(qǐng)教各位TI的技術(shù)人員一個(gè)問題 數(shù)據(jù)經(jīng)過電平轉(zhuǎn)換芯片是會(huì)產(chǎn)生延遲的 對(duì)于多通道電平轉(zhuǎn)換芯片,由于延時(shí)的存在,不同通道間的延時(shí)是不一樣的,同相位的信號(hào)經(jīng)過轉(zhuǎn)換后不同通道的輸出信號(hào)的相位可能不同,請(qǐng)問一下如何保證不同通道間的輸出相位對(duì)齊? 謝謝
    發(fā)表于 02-05 06:16

    關(guān)于tlk2201數(shù)據(jù)對(duì)齊問題求解

    最近在調(diào)tlk2201,10bit位寬,tbi模式。目前的進(jìn)度如下:如果發(fā)射端不發(fā)k28.5,接收端syncen拉低,是無法對(duì)齊的。td0-td9隨機(jī)對(duì)應(yīng)rd0-rd9。這樣不行,所以拉高
    發(fā)表于 01-23 06:26

    KiCad的對(duì)齊工具不好用?

    兩個(gè)以上對(duì)象 時(shí),才可以在右鍵的菜單中找到它的身影: 如何使用對(duì)齊菜單? 經(jīng)常有小伙伴抱怨 KiCad 的對(duì)齊的效果很隨機(jī),沒有辦法按照意圖進(jìn)行對(duì)齊操作。真實(shí)情況是 KiCad 在執(zhí)行
    的頭像 發(fā)表于 12-04 18:15 ?678次閱讀
    KiCad的<b class='flag-5'>對(duì)齊</b>工具不好用?

    ARM嵌入式系統(tǒng)中內(nèi)存對(duì)齊的重要性

    做嵌入式系統(tǒng)軟件開發(fā),經(jīng)常在代碼中看到各種各樣的對(duì)齊,很多時(shí)候我們都是知其然不知其所以然,知道要做好各種對(duì)齊,但是不明白為什么要對(duì)齊,不對(duì)齊
    的頭像 發(fā)表于 11-11 17:17 ?1467次閱讀
    ARM嵌入式系統(tǒng)中內(nèi)存<b class='flag-5'>對(duì)齊</b>的重要性

    I2S有左對(duì)齊,右對(duì)齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點(diǎn)呢?

    大家好,關(guān)于I2S格式,有兩個(gè)疑問請(qǐng)教一下 我們知道I2S有左對(duì)齊,右對(duì)齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點(diǎn)呢? 而且對(duì)于標(biāo)準(zhǔn)的I2S格式,32FS傳輸16bit的數(shù)據(jù),48fs傳輸24bit的數(shù)據(jù),最低位會(huì)移動(dòng)到右聲道,是否意味著該數(shù)據(jù)被丟棄了?還是有
    發(fā)表于 10-21 08:23

    請(qǐng)問cc3200 i2s怎么設(shè)置左對(duì)齊或者右對(duì)齊模式?

    CC3200 手冊(cè) swru367中有提到i2s支持左對(duì)齊或者右對(duì)齊,但是在sdk提供的api中沒有找到如何設(shè)置,請(qǐng)問哪位高人知道,請(qǐng)指點(diǎn)一下,謝謝
    發(fā)表于 10-21 07:08

    三相三電平逆變器的中心對(duì)齊SVPWM實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《三相三電平逆變器的中心對(duì)齊SVPWM實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:25 ?0次下載
    三相三電平逆變器的中心<b class='flag-5'>對(duì)齊</b>SVPWM實(shí)現(xiàn)

    OpenAI超級(jí)對(duì)齊團(tuán)隊(duì)解散

    近日,OpenAI的安全主管、“超級(jí)智能對(duì)齊團(tuán)隊(duì)”負(fù)責(zé)人Jan Leike宣布離職。據(jù)悉,Jan Leike與OpenAI高層在公司的核心優(yōu)先事項(xiàng)上存在長期且難以調(diào)和的分歧。
    的頭像 發(fā)表于 05-20 10:16 ?668次閱讀

    鴻蒙ArkUI開發(fā):【彈性布局(主軸&amp;交叉軸對(duì)齊方式)】

    通過justifyContent參數(shù)設(shè)置在主軸方向的對(duì)齊方式,和Row、Column的主軸對(duì)齊方式行為一樣
    的頭像 發(fā)表于 05-14 15:33 ?1040次閱讀
    鴻蒙ArkUI開發(fā):【彈性布局(主軸&amp;交叉軸<b class='flag-5'>對(duì)齊</b>方式)】

    HarmonyOS開發(fā)ArkUI案例:【常用布局容器對(duì)齊方式】

    基于ArkTS擴(kuò)展的聲明式開發(fā)范式,實(shí)現(xiàn)Flex、Column、Row和Stack四種常用布局容器對(duì)齊方式。
    的頭像 發(fā)表于 05-08 16:47 ?1999次閱讀
    HarmonyOS開發(fā)ArkUI案例:【常用布局容器<b class='flag-5'>對(duì)齊</b>方式】

    AN2658中的AD數(shù)據(jù)對(duì)齊錯(cuò)了怎么解決?

    看到 STM8s003 中文資料, 其 應(yīng)用筆記 AN2658 中的 AD 數(shù)據(jù)對(duì)齊 描述,將左右對(duì)齊搞反了。
    發(fā)表于 05-06 07:43
    主站蜘蛛池模板: 特黄特黄特色大片免费观看 | 天天拍夜夜添久久精品免费 | 亚洲综合婷婷 | 色www免费视频 | 色偷偷91综合久久噜噜噜男男 | 国产福利资源 | 又粗又长又色又爽视频 | 天天插天天干 | 日本3级视频 | 日韩1页| 欧美肉到失禁高h视频在线 欧美三级成人 | 国产精品美女在线 | 天天摸夜夜摸夜夜狠狠摸 | 手机看片福利久久 | 手机看片自拍自自拍日韩免费 | 麻豆色哟哟网站 | 国产精品美女在线观看 | 午夜寂寞在线一级观看免费 | 理论片午夜 | 色天天躁夜夜躁天干天干 | 午夜免费视频观看在线播放 | 欧美一级特黄乱妇高清视频 | 伊人福利视频 | 久久久久久全国免费观看 | 五月婷六月丁香 | 天天做天天爱天天综合网2021 | 天天综合网天天综合色不卡 | 夜夜狠狠 | 亚洲人成电影在线播放 | 性欧美1819 | 国产毛片毛片精品天天看 | 成人亚洲欧美 | 在线免费视频 | 亚洲精品综合网在线8050影院 | 同性男男肉交短文 | 性欧美大战久久久久久久 | 分分操免费视频在线观看 | 久久国产免费观看 | 亚洲第一在线 | 国产三级a三级三级天天 | 午夜男人的天堂 |