欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

結(jié)構(gòu)體成員的順序會(huì)影響結(jié)構(gòu)體的大小嗎

學(xué)益得智能硬件 ? 來(lái)源:學(xué)益得智能硬件 ? 2024-11-25 16:24 ? 次閱讀

相同的結(jié)構(gòu)體成員,如果把順序調(diào)整一下,會(huì)不會(huì)影響結(jié)構(gòu)體的大???

答案是會(huì)的,這主要跟字節(jié)對(duì)齊有關(guān)。

比如這樣的結(jié)構(gòu)體,前面兩個(gè)是 char 類型,后面跟上一個(gè) int 類型。

struct A
{
    char a;
charb;
intc;
};

它在內(nèi)存中的排序是這樣的,第一個(gè) char 占 1 個(gè)字節(jié),緊接著第 2 個(gè) char 也占 1 個(gè)字節(jié)。

因?yàn)樽詈笫莻€(gè) int 類型,所以中間還要空 2 個(gè)字節(jié)。要保證 int 的偏移是 4 的整數(shù)倍。

結(jié)構(gòu)體最終長(zhǎng)度就是 8 個(gè)字節(jié)。

下面調(diào)整一下,把第 2 個(gè) char 放到 int 的后面。

struct B
{
    char a;
    int b;
    char c;
};

第一個(gè) char 任然占 1 個(gè)字節(jié),由于后面是 int,中間還得空 3 個(gè)字節(jié)。

最后的 char 占 1 個(gè)字節(jié)。

由于 int 的存在,結(jié)構(gòu)體的總長(zhǎng)度必須是 4 的整數(shù)倍,所以結(jié)果就是 12。

成員的順序一旦變了,他們?cè)趦?nèi)存中的排布方式就會(huì)不一樣,結(jié)果也就不同。

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

    關(guān)注

    8

    文章

    3060

    瀏覽量

    74353
  • 結(jié)構(gòu)體
    +關(guān)注

    關(guān)注

    1

    文章

    130

    瀏覽量

    10872

原文標(biāo)題:結(jié)構(gòu)體成員的順序會(huì)不會(huì)影響結(jié)構(gòu)體的大小

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度了解SiC的晶體結(jié)構(gòu)

    SiC是由硅(Si)和碳(C)按1:1的化學(xué)計(jì)量比組成的晶體,因其內(nèi)部結(jié)構(gòu)堆積順序的不同,形成不同的SiC多型,本篇章帶你了解SiC的晶體結(jié)構(gòu)及其可能存在的晶體缺陷。
    的頭像 發(fā)表于 11-14 14:57 ?1263次閱讀
    深度了解SiC的晶體<b class='flag-5'>結(jié)構(gòu)</b>

    C語(yǔ)言和C++中結(jié)構(gòu)的區(qū)別

    同樣是結(jié)構(gòu),看看在C語(yǔ)言和C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?358次閱讀

    計(jì)算機(jī)程序的三種基本控制結(jié)構(gòu)是什么

    計(jì)算機(jī)程序的三種基本控制結(jié)構(gòu)是: 順序結(jié)構(gòu)(Sequence Structure) :順序結(jié)構(gòu)是最基本的控制
    的頭像 發(fā)表于 09-04 17:00 ?1695次閱讀

    帶你認(rèn)識(shí)貼片一成型電感的材料結(jié)構(gòu)

    貼片一成型電感(也被稱為模壓電感)是一種具有特殊結(jié)構(gòu)和材料組成的電子元件。其材料結(jié)構(gòu)主要包括以下幾個(gè)方面: 一、主要材料 1. 金屬粉末 核心材料:一成型電感的主要材料是金屬粉末,
    的頭像 發(fā)表于 08-07 16:01 ?551次閱讀
    帶你認(rèn)識(shí)貼片一<b class='flag-5'>體</b>成型電感的材料<b class='flag-5'>結(jié)構(gòu)</b>

    ota升級(jí)的庫(kù)中,結(jié)構(gòu)upgrade_server_info中pespconn的作用是什么?

    check_cb; struct espconn *pespconn; }; 這個(gè)結(jié)構(gòu)中已經(jīng)有ip,port,pespconn這個(gè)結(jié)構(gòu)
    發(fā)表于 07-12 06:33

    神經(jīng)元的結(jié)構(gòu)及功能是什么

    的細(xì)胞,具有獨(dú)特的形態(tài)結(jié)構(gòu)。神經(jīng)元的基本結(jié)構(gòu)包括細(xì)胞、樹突和軸突。 (1)細(xì)胞:細(xì)胞是神經(jīng)元的中心部分,包含細(xì)胞核和其他細(xì)胞器。細(xì)胞核
    的頭像 發(fā)表于 07-03 11:33 ?1572次閱讀

    聚徽觸控-工控一機(jī)和 PLC 一機(jī)有什么不同

    在工業(yè)自動(dòng)化領(lǐng)域,工控一機(jī)和 PLC 一機(jī)都扮演著重要角色。盡管它們?cè)谀撤N程度上有所重疊,但它們?cè)诠δ堋?yīng)用和設(shè)計(jì)結(jié)構(gòu)等方面存在顯著的不同。工控一機(jī)和 PLC 一
    的頭像 發(fā)表于 06-21 10:05 ?583次閱讀

    ESP32-C3如何把一個(gè)const結(jié)構(gòu)固定放在生成的bin文件的最末尾?

    我的芯片是ESP32-C3,需要把一個(gè)const結(jié)構(gòu)固定放在生成的bin文件的最末尾,例如: #define USER_SECTION__attribute__ ((used,section
    發(fā)表于 06-18 07:52

    請(qǐng)問(wèn)esp-idf&amp;vscode結(jié)構(gòu)索引不到對(duì)應(yīng)的成員如何解決?

    兄弟們,我用VSCode 初始化結(jié)構(gòu)時(shí),索引不到對(duì)應(yīng)的成員,并且索引會(huì)出現(xiàn)不屬于結(jié)構(gòu)體內(nèi)的東西,有解決辦法嗎,球球了
    發(fā)表于 06-14 06:42

    你是否真的了解結(jié)構(gòu)占用了多少字節(jié)?

    結(jié)構(gòu)成員所占內(nèi)存空間大小一般情況下,如果想知道結(jié)構(gòu)成員
    的頭像 發(fā)表于 06-04 08:04 ?580次閱讀
    你是否真的了解<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>占用了多少字節(jié)?

    嵌入式中C語(yǔ)言結(jié)構(gòu)基本實(shí)現(xiàn)

    : ? ??在struct 中聲明了一個(gè)含有若干新成員的數(shù)據(jù)類型。 ????tag ?是結(jié)構(gòu)標(biāo)簽。 ????member-list ?是標(biāo)準(zhǔn)的變量定義,比如 int i; 或者 float f,或者其他
    的頭像 發(fā)表于 05-11 08:49 ?1132次閱讀
    嵌入式中C語(yǔ)言<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>基本實(shí)現(xiàn)

    定義了一個(gè)結(jié)構(gòu),但是分配的地址不連續(xù),為什么?

    定義了一個(gè)結(jié)構(gòu),但是分配的地址不連續(xù),是KEIL的問(wèn)題還是我的問(wèn)題?
    發(fā)表于 04-26 08:12

    用FreeRTOS使用隊(duì)列怎么發(fā)送一個(gè)結(jié)構(gòu)呢?

    怎么使用隊(duì)列,發(fā)送一個(gè)12個(gè)字節(jié)的結(jié)構(gòu)呢? osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec
    發(fā)表于 04-17 07:35

    C語(yǔ)言結(jié)構(gòu)史上最詳細(xì)的講解【軟件干貨】

    struct結(jié)構(gòu)數(shù)據(jù)類型 前言 我們知道,在C語(yǔ)言中有一些基本的數(shù)據(jù)類型,如?char?int?float?long?double?string(c99) 等等數(shù)據(jù)類型,他們可以表示一些事物
    的頭像 發(fā)表于 03-28 17:52 ?858次閱讀

    求助,關(guān)于G031ADC結(jié)構(gòu)設(shè)置的幾個(gè)疑問(wèn)求解

    本人在使用ADC時(shí)想使用多通道模式,所以便在CUBEMX上將十九個(gè)通道全部打開(包括三個(gè)內(nèi)部通道),生成代碼以后詳細(xì)看了一下結(jié)構(gòu)的配置發(fā)現(xiàn)有幾個(gè)疑惑, 1.ADC通道分為規(guī)則通道和注入通道,那么
    發(fā)表于 03-15 07:03