色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 嵌入式學習筆記:c語言共用體和結構體的區別

嵌入式學習筆記:c語言共用體和結構體的區別 時間:2018-09-06      來源:未知

c++中,結構體(struct)和共用體(union)是比較相似的復合數據類型,這兩個都是用來存儲多種數據的,但是他們之間還是有很大差距的,一起來了解

【1】共用體

(1)共用體的概念

在 C 語言中,不同數據類型的數據可以使用共同的存儲區域,這種數據構造類型稱為共用體,簡稱共用,又稱聯合體。

共用體在定義、說明和使用形式上與結構體相似。兩者本質上的不同僅在于使用內存的方式上。

定義一個共用體類型的一般形式為:

union 共用體名

{

成員表列;

};

例如:

union gy

{

int i; char c; float f;

};

這里定義了一個共用體類型 union gy,它由三個成員組成,這三個成員在內存中使用共同的存儲空間。

由于共用體中各成員的數據長度往往不同,所以共用體變量在存儲時總是按其成員中數據長度最大的成員占用內存空間。

在這一點上共用體與結構體不同,結構體類型變量在存儲時總是按各成員的數據長度之和占用內存空間。

例如,定義了一個結構體類型:

struct gy

{

int i;

char c;

float f;

};

則結構體類型 struct gy 的變量占用的內存大小為 2+1+4=7 個字節(不考慮字節對齊)。

在使用共用體類型變量的數據時要注意:在共用體類型變量中起作用的成員是最后一次存放的成員,

在存入一個新的成員后原有的成員就失去作用。如有以下賦值語句:

a.i = 1;

a.c = ’a’;

a.f = 1.5;

完成以上三個賦值運算以后,a.f 是有效的,a.i 和 a.c 已經無意義了。

在程序中經常使用結構體與共用體相互嵌套的形式。

即共用體類型的成員可以是結構體類型,或者結構體類型的成員是共用體類型。

例如,下列結構體類型 datas 的第三個成員是共用體類型:

struct datas

{

char *ps;

int type;

union

{

float fdata;

int idata;

char cdata;

}udata;

};

【2】typedef

(1)在 C 語言中,允許使用關鍵字 typedef 定義新的數據類型

其語法如下:

typedef

<已有數據類型>

<新數據類型>;

如:

typedef int INTEGER;

這里新定義了數據類型 INTEGER, 其等價于 int

INTEGER i; <==> int i;

(2) 在 C 語言中經常在定義結構體類型時使用 typedef,例如

typedef

{

struct _node_

int data;

struct _node_ *next;

} listnode, *linklist;

這里定義了兩個新的數據類型 listnode 和 linklist。其中 listnode 等價于數據類型 struct _node_ 而 linklist 等價于 struct _node_ *

【3】

上一篇:嵌入式學習筆記:c語言結構體的定義和使用

下一篇:嵌入式學習筆記:shell腳本變量詳解

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 丰满又黄又爽少妇毛片 | 嫩草影院一二三四 | 久久国产精品麻豆 | 欧美高潮一区 | 日本三级日本三级韩国三级视 | 狠狠躁天天躁无码中文字幕 | 欧美《熟妇的荡欲》在线观看 | 精品久久亚洲中文无码 | 影音先锋熟女少妇AV资源 | 中国免费一级毛片 | 18禁超污无遮挡无码免费应用 | 日本熟妇五十路重生七零甜婚似火 | 日本特大A级猛片在线观看 国产免费AV片在线播放唯爱网 | 狠狠噜噜 | 亚洲熟女www一区二区三区 | 亚洲中文字幕成人无码 | 免费国产黄线在线播放 | 无码av动漫精品专区 | 亚洲欧洲日韩一区 | 粉嫩AV久久一区二区三区王玥 | 亚洲欧美日韩中文在线制服 | gogogo高清在线观看免费中国 | 中文字幕 综合一区 | 欧美猛男军警GAY自慰 | 日韩一区二区三区无码A片 字幕网91 | 亚洲精品TV久久久久久久久J | ㊣最新国产の精品bt伙计久久 | 色婷婷日日躁夜夜躁 | 欧洲熟妇色xxxx欧美老妇 | 欧美大荫蒂毛茸茸视频 | 午夜嘿嘿 | 免费观看又色又爽又湿的视频 | 影音先锋免费AV资源在线资源 | 人人妻在人人 | 亚洲综合人成网免费视频 | 国产人妻777人伦精品HD | 国产伦精品一区二区三区照片 | 蜜芽亚洲AV尤物183不卡资源 | 亚洲精品无码成人a片 | 亚洲精品亚洲人成人网 | 亚洲成AV人在线播放无码 |