色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

c語言中結構體有聯合體的區別

嵌入式應用開發 ? 來源:嵌入式應用開發 ? 作者:嵌入式應用開發 ? 2022-12-03 14:25 ? 次閱讀

結構體、聯合體是C語言中的構造類型,結構體我們平時應該都用得很多。但是,對于聯合體,一些初學的朋友可能用得并不多,甚至感到陌生。我們先來簡單看一下聯合體:

union 聯合名
{
成員表
};

成員表中含有若干成員,成員的一般形式為:類型說明符 成員名。其占用的字節數與成員中最大數據類型占用的字節數。

下面用代碼進行理解:

enum DATA_PKG_TYPE
{
    DATA_PKG1 = 1,
    DATA_PKG2,
    DATA_PKG3    
};

struct data_pkg1
{
    // ...
};

struct data_pkg2
{
    // ...
};

struct data_pkg3
{
    // ...
};

struct data_pkg
{
    enum DATA_PKG_TYPE data_pkg_type;
    union 
    {
       struct data_pkg1 data_pkg1_info;
       struct data_pkg2 data_pkg2_info;
       struct data_pkg3 data_pkg3_info;
    }data_pkg_info;
};

把struct data_pkg1、struct data_pkg2、struct data_pkg3三個結構體放到了struct data_pkg這個結構體里進行管理,把data_pkg_type與union里的三個結構體建立一一對應關系,我們需要用哪一結構體數據就通過data_pkg_type來進行選中。

在進行數據組包的時候,先給data_pkg_type進行賦值,確定數據包的類型,再給對應的union里的結構體進行賦值;在進行數據解析的時候,通過data_pkg_type來選擇解析哪一組數據。

poYBAGOJ98iAQ1WEAAEwqauSLcU443.png

結構體部分:

#define BUF_SIZE 16
union protocol_data
{
 uint8_t data_buffer[BUF_SIZE];
 struct 
 {
  uint8_t data1;
  uint8_t data2;
  uint8_t data3;
  uint8_t data4;
  // ...
 }data_info;
};

struct里面的內容可以設計得很簡單,比如全是有用的數據,或是設計得很復雜,包含一些協議頭尾、包長、有效數據、校驗等內容。

但無論如何,我們組包發送的過程是填充結構體->發送data_buffer;反之接收數據解析的過程就是接收數據存于data_buffer->使用結構體數據

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3052

    瀏覽量

    74217
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137432
  • 結構體
    +關注

    關注

    1

    文章

    130

    瀏覽量

    10867
收藏 人收藏

    評論

    相關推薦

    C語言聯合體的巧妙運用

    聯合體(Union)是C語言中的一種復合類型,它允許在同一內存區域存儲多個不同的數據類型的成員(member),但只能同時存在其中一個成員。
    發表于 06-21 10:59 ?1903次閱讀

    430編程C語言常識(IAR)之結構聯合體

      結構聯合體C語言的常見數據類型,可對C的基本數據類型進行組合使之能表示復雜的數據
    發表于 11-22 15:43

    DLL導入結構 聯合體

    DLL函數參數中,結構聯合體結構中使用聯合體
    發表于 09-06 10:32

    聯合體問題

    union U1{INT8Uax[4];FP32 fx;INT32Slx;INT32Uulx;INT16Six;INT16Uuix;INT8Scx;INT8Uucx;};U1 X_rom;//申請聯合接口數據變量定義如上的一個聯合體
    發表于 01-04 12:13

    如何定義了這個聯合體

    我先定義一個聯合體數據類型,然后接著定義了一些聯合體變量,定義聯合體部分如下:我在sys_config.c文件中定義如下聯合體數據類型和變量
    發表于 07-12 04:28

    為什么位域結構聯合體一起使用?

    /*本例程是C語言的位域操作示例這里為什么位域結構聯合體一起使用?-->因為這樣定義后,即可以單獨使用標志位 也可同時使用整個字節數據主
    發表于 07-14 06:23

    結構與共用區別

    語言中,還有另外一種和結構非常類似的語法,叫做共用(Union),它的定義格式為:union 共用名{成員列表};共用
    發表于 07-20 06:57

    結構聯合體區別到底在哪里

    在單片機軟件編程中,結構和枚舉類型都很常用到,聯合體相對來用的就比較少。那么結構聯合體
    發表于 11-22 07:54

    如何利用聯合體去判斷大小端呢

    轉載,如若侵權,請聯系本人刪除。聯合體定義聯合體結構一樣都是自定義類型。聯合體也包含一系列成員,但是和
    發表于 12-15 07:21

    聯合體/共用的使用方法

    大家好,我是ZhengN。本次給分享聯合體的一些知識。聯合體/共用的使用 C語言中聯合體/共
    發表于 02-28 10:05

    結構struct和聯合體union的區別

    結構struct和聯合體union的區別
    發表于 10-11 08:21

    C語言結構聯合體嵌套使用的實用操作

    ? 結構聯合體C語言中的構造類型,結構我們平
    的頭像 發表于 12-24 16:07 ?5530次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>結構</b><b class='flag-5'>體</b>、<b class='flag-5'>聯合體</b>嵌套使用的實用操作

    什么是C語言聯合體

    名{ 成員列表 }; 共用有時也被稱為聯合或者聯合體,這也是 Union 這個單詞的本意。 結構
    的頭像 發表于 07-29 15:35 ?3788次閱讀
    什么是<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>聯合體</b>

    看一下結構聯合體結合使用在C語言與嵌入式中的一些實用技巧

    結構聯合體C語言中的構造類型,結構我們平時應
    發表于 05-08 10:19 ?4315次閱讀
    看一下<b class='flag-5'>結構</b><b class='flag-5'>體</b>、<b class='flag-5'>聯合體</b>結合使用在<b class='flag-5'>C</b><b class='flag-5'>語言</b>與嵌入式中的一些實用技巧

    經典 C 語言編程,結構聯合體如何共用?

    中可以 使用 sizeof 進行獲取,默認為字節對齊的大小。 聯合體 聯合體的參數共享同一個內存地址,所占的內存大小完全是由聯合體中參數類型決定字長,然后數據共享,內存共享等。 結構
    的頭像 發表于 01-11 18:24 ?1476次閱讀
    經典 <b class='flag-5'>C</b> <b class='flag-5'>語言</b>編程,<b class='flag-5'>結構</b><b class='flag-5'>體</b>和<b class='flag-5'>聯合體</b>如何共用?
    主站蜘蛛池模板: thermo脱色摇床安卓下载 | 在线免费观看国产 | 沙发上小泬12P | 女bbbbxxx孕妇| 青柠高清在线观看完整版 | 美女裸露胸部100%无遮挡 | 老鸭窝毛片 | 啊片色播电影 | 国产精品爽爽久久久久久无码 | 国产毛片A级久久久不卡精品 | 天天射天天干天天插 | 欧美色妞AV重囗味视频 | 99精品免费久久久久久久久日本 | 亚洲蜜桃AV色情精品成人 | 国产精品99re6热在线播放 | 青青草原亚洲 | 国产精品久久久久久影院 | 色综合久久天天影视网 | 轻轻挺进女教师的身体 | 欧美黄色一级 | 日本久久中文字幕 | 99久久热视频只有精品 | 精品无人区一区二区三区 | 精品国产乱码久久久久久口爆 | 欧美日韩亚洲综合2019 | AAA级精品无码久久久国片 | 亚洲中文字幕无码一去台湾 | 国产精品亚洲一区二区三区久久 | AV无码九九久久 | 欧美一级久久久久久久久大 | 欧美日韩国产在线一区二区 | 天美传媒果冻传媒入口视频 | 伊人久久精品99热超碰 | 欧美牲交A欧美牲交VDO | 婷婷亚洲AV色香蕉蜜桃 | 彭丹吃奶门 | 欧美日韩中文国产一区 | 欧美free嫩交hd| 神马影院在线eecss伦理片 | 狠狠色狠狠色综合日日92 | 嫩草影院久久精品 |