日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

學益得智能硬件 ? 來源:學益得智能硬件 ? 2023-01-31 15:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

最后一個是c,因為只占一個字節(jié),所以直接放在最后就好。

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


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

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

審核編輯 :李倩


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

    關注

    37

    文章

    7443

    瀏覽量

    129644
  • 字節(jié)
    +關注

    關注

    0

    文章

    44

    瀏覽量

    14407
  • 變量
    +關注

    關注

    0

    文章

    616

    瀏覽量

    29579

原文標題:字節(jié)對齊

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用羅德與施瓦茨ZNH矢量網(wǎng)絡分析儀的空中導航ILS系統(tǒng)天線對齊

      在民航業(yè),儀表著陸系統(tǒng) (ILS) 發(fā)射機使用天線陣列指引進場飛機。ILS 性能在很大程度上取決于天線陣列中每個單元的幅度和相位都精確對齊。R&S?ZNH 手持式矢量網(wǎng)絡分析儀內(nèi)置信號源,能夠快速方便地在外場測量 ILS 天線系統(tǒng)。
    的頭像 發(fā)表于 04-02 15:20 ?120次閱讀
    使用羅德與施瓦茨ZNH矢量網(wǎng)絡分析儀的空中導航ILS系統(tǒng)天線<b class='flag-5'>對齊</b>

    理連接完成了,時序對齊還沒開始

    、G-SYNC,一切參數(shù)如預期般呈現(xiàn)。 但深入使用后,你可能察覺: 游戲快速轉向時畫面有輕微“拖影感”; 視頻剪輯時間軸拖動不夠跟手; 音畫偶爾錯位,尤其在高幀率播放時更明顯。 物理連接完成了,但信號的時序對齊,其實還沒真正開始。 在高速數(shù)字顯示時代,能否“亮屏”
    的頭像 發(fā)表于 03-23 17:38 ?1043次閱讀

    伺服電機正余弦編碼器的相位對齊方式

    伺服電機正余弦編碼器的相位對齊,本質上是為了讓編碼器反饋的位置信號與電機轉子實際的磁極位置(電角度)建立精確的對應關系。這是實現(xiàn)矢量控制、確保電機平穩(wěn)出力、避免飛車的基礎。 根據(jù)操作原理和依賴的設備
    的頭像 發(fā)表于 03-20 15:36 ?242次閱讀
    伺服電機正余弦編碼器的相位<b class='flag-5'>對齊</b>方式

    科技云報到:兩會“中場時刻”:從技術突破到制度對齊

    科技云報到:兩會“中場時刻”:從技術突破到制度對齊
    的頭像 發(fā)表于 03-06 19:01 ?978次閱讀

    LAT1185+一個地址未對齊引起的 HardFault 異常應用筆記

    ,則程序運行正常。表面上看,這似乎是 KEIL MDK 的問題,通過分析,導致這個問題的本質原因是內(nèi)存地址沒有對齊引起的,下面章節(jié)將詳細分析該問題的來龍去脈以及解決方法。
    發(fā)表于 01-11 17:28 ?0次下載

    頻譜分析儀與電壓探頭匹配指南

    如何實現(xiàn)頻譜分析儀與電壓探頭的精準匹配?核心邏輯可概括為“三對齊一適配”——參數(shù)對齊、接口對齊、設置對齊+場景適配,最終目標是規(guī)避信號反射、衰減與失真問題,確保測量數(shù)據(jù)(幅度、頻率、波
    的頭像 發(fā)表于 12-29 14:51 ?599次閱讀
    頻譜分析儀與電壓探頭匹配指南

    CW32操作FLASH地址對齊的要求

    地址邊界對齊,即使用 16bit 位寬訪問 FLASH 時的地址必須是偶地址,使用 32bit 位寬時的地址必須是 4 的倍數(shù)地址。 正確地址對齊的代碼示例: 8bit 讀?。?tempdata
    發(fā)表于 12-15 06:30

    單片機內(nèi)部FLASH字節(jié)操作

    一個字(32位) [*]// addr:讀取地址 [*]// 返回: 讀到的字數(shù)據(jù) [*]//備注: 地址為4字節(jié)對齊
    發(fā)表于 11-24 06:40

    摩爾線程新一代大語言模型對齊框架URPO入選AAAI 2026

    近日,摩爾線程在人工智能前沿領域取得重要突破,其提出的新一代大語言模型對齊框架——URPO統(tǒng)一獎勵與策略優(yōu)化,相關研究論文已被人工智能領域的國際頂級學術會議AAAI 2026收錄。這一成果標志著摩爾線程在大模型基礎技術探索上邁出了關鍵一步,為簡化大模型訓練流程、突破模型性能上限提供了全新的技術路徑。
    的頭像 發(fā)表于 11-17 16:03 ?620次閱讀
    摩爾線程新一代大語言模型<b class='flag-5'>對齊</b>框架URPO入選AAAI 2026

    MDK536 + SWM34S平臺移植LVGL8.3.3 定義數(shù)組使用ALIGN()對齊時編譯報錯是什么原因導致的?

    使用MDK536 SWM34S單片機 ENV下添加LVGL軟件包8.3.3后,編譯工程報錯。提示出錯在定義數(shù)組時使用ALIGN字節(jié)對齊,在lv_rt_thread_port.c中和一些樣例代碼文件
    發(fā)表于 10-09 08:00

    MDK uVision V5.36.00使用rt_packed進行字節(jié)對齊,但無效,為什么?

    各位RTT專家好: MDK uVision V5.36.00使用rt_packed進行字節(jié)對齊,但無效。
    發(fā)表于 09-24 06:37

    使用lv_label_set_text釋放內(nèi)存沒對齊是什么原因導致的?

    (guider_ui.monitor_label_pressure_now, "1"); rt_mutex_release(lv_mutex); // 釋放互斥鎖 使用lv_label_set_text導致釋放內(nèi)存沒對齊是什么問題 已經(jīng)加了互斥鎖
    發(fā)表于 09-16 06:44

    TC334 uart dma發(fā)送數(shù)據(jù)時,只能發(fā)送17個字節(jié),怎么解決?

    具體情況:配置串口發(fā)送,具體配置情況如下,對于17字節(jié)內(nèi)的數(shù)據(jù)包能夠正常發(fā)送,大于17字節(jié)的數(shù)據(jù)包只能發(fā)送前17字節(jié)。(已做好字節(jié)對齊) 請
    發(fā)表于 08-04 07:18

    伺服電機編碼器與轉子磁極相位對齊方法

    永磁交流伺服電機的編碼器相位為何要與轉子磁極相位對齊 其唯一目的就是要達成矢量控制的目標,使 d 軸勵磁分量和 q 軸出力分量解耦,令永磁交流伺服電機定子繞組產(chǎn)生的電磁場始終正交于轉子永磁場,從而
    發(fā)表于 05-14 16:00

    Allegro Skill布局功能--器件絲印過孔對齊介紹與演示

    Allegro系統(tǒng)雖然提供了基本的元件對齊功能,但其適用范圍較為有限。相比之下,F(xiàn)anyskill 的“對齊”命令在操作體驗和功能性上更具優(yōu)勢:其界面設計更加直觀易用,并支持多種元素的對齊操作,包括
    發(fā)表于 05-14 08:59 ?4489次閱讀
    Allegro Skill布局功能--器件絲印過孔<b class='flag-5'>對齊</b>介紹與演示
    南丹县| 三江| 江孜县| 寿宁县| 井研县| 马鞍山市| 镇巴县| 常德市| 沁阳市| 于田县| 荣成市| 梓潼县| 尖扎县| 蛟河市| 华亭县| 黎城县| 山西省| 吉林省| 龙江县| 武邑县| 天气| 巢湖市| 株洲市| 永康市| 逊克县| 宜君县| 浦北县| 固镇县| 连江县| 东山县| 施秉县| 孝昌县| 海宁市| 新龙县| 泗阳县| 巨野县| 建始县| 贞丰县| 延吉市| 石城县| 平阳县|