C语言共用体
共用體
- 共用體類型的定義、變量定義和使用
- 共用體和結(jié)構(gòu)體的相同和不同
- 共用體的主要用途
共用體類型的定義、變量定義和使用
1.共用體union和結(jié)構(gòu)體struct在類型定義、變量定義、時(shí)候用方法上很相似。
2.共用體和結(jié)構(gòu)體不同,結(jié)構(gòu)體類似于一個(gè)包裹,結(jié)構(gòu)體中的成員彼此是獨(dú)立存在的,分布在內(nèi)存的不同單元中,他們只是被打包成一個(gè)整體叫做結(jié)構(gòu)體而已。共用體中的各個(gè)成員其實(shí)是一體的,彼此不獨(dú)立,他們使用同一個(gè)內(nèi)存單元。可以理解為:有時(shí)候是這個(gè)元素,有時(shí)候是那個(gè)元素,更準(zhǔn)確的說法是同一個(gè)內(nèi)存空間的多種解釋方式。
3.共用體union就是對(duì)同一塊內(nèi)存中存儲(chǔ)的二進(jìn)制的不同的理解方式。
4.Union的sizeof測到的大小實(shí)際是union中各個(gè)元素里面占用內(nèi)存最大的那個(gè)元素的大小。因?yàn)榭梢源嫦逻@個(gè)就一定能夠存的下其他的元素。
5.Union中元素不存在內(nèi)存對(duì)齊的問題,因?yàn)閡nion中實(shí)際只有一個(gè)內(nèi)存空間,都是從同一個(gè)地址開始的(開始地址就是整個(gè)union占有的內(nèi)存空間的首地址),所以不涉及內(nèi)存對(duì)齊。
共用體和結(jié)構(gòu)體的相同和不同
1.相同點(diǎn)就是操作的語法幾乎相同。
2.不同點(diǎn):本質(zhì)上不同,struct是多個(gè)獨(dú)立元素(內(nèi)存空間)打包在一起。Union是一個(gè)元素(內(nèi)存空間)的多種不同解析方式。
共用體的主要用途
1.共用體就用在那種對(duì)同一個(gè)內(nèi)存空間進(jìn)行多種不同規(guī)則解析的這種情況下。
2.C語言中其實(shí)是可以沒有公用體的,用指針和強(qiáng)制類型轉(zhuǎn)換可以替代共用體完成同樣的功能,但是共用體的方式更簡單、更便捷、更好理解。
總結(jié)
- 上一篇: 新笔记本怎么激活win10 激活新笔记本
- 下一篇: C语言常见数据类型