亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_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號

回到頂部

主站蜘蛛池模板: 九九热免费视频 | 亚洲欧美日韩一区高清中文字幕 | 日本youjizz| 欧美性xxxx巨大黑人猛 | 曰本一区 | 欧美成人七十二式性视频教程 | 青青免费观看免在线 | 天天爽天天爽夜夜爽毛片 | 久久国产成人午夜aⅴ影院 久久国产大片 | 日韩经典视频 | 免费欧洲毛片a级视频无风险 | 欧美视频一区二区三区在线观看 | 暖暖免费高清日本一区二区三区 | 3344成年站福利在线视频免费 | 99国产精品久久久久久久成人热 | 日本叉叉叉 | 天天碰天天干 | 国产成人a大片大片在线播放 | 久久综合五月天 | 国产一卡2卡3卡4卡网站贰佰信 | 青青在线播放 | 中文字幕在线观看不卡视频 | 国产成人手机在线好好热 | 久久精品国产亚洲婷婷 | 日本高清视频在线免费观看 | 国产成人3p视频免费观看 | 欧美精品免费线视频观看视频 | 国产页| 99热这里只有成人精品国产 | 色综合天天综合网国产国产人 | 久久综合九色综合欧美狠狠 | 欧美一级视频在线高清观看 | 久久精品一区二区国产 | 欧美5060| 久久99网站| 国产免费高清在线精品一区 | 国产精品一级毛片不收费 | 看a网站| 黑人巨大初黑人解禁作品 | 国产一区2区3区 | 精品在线一区二区三区 |