C語言 聯合體使用技巧之位帶操作

2021-10-08 22:34:50 字數 543 閱讀 8766

1.聯合體union

當多個資料需要共享記憶體或者多個資料每次只取其一時,可以利用聯合體(union)。在c programming language 一書中對於聯合體是這麼描述的:

1)聯合體是乙個結構;

2)它的所有成員相對於基位址的偏移量都為0;

3)此結構空間要大到足夠容納最"寬"的成員;

4)其對齊方式要適合其中所有的成員;

具體使用方式如下,直接看**:

typedef union system_faultbit;

}system_fault_struct;

volatile system_fault_struct gpsm_fault;

gpsm_fault.bit.cotp = 1;

if( gpsm_fault.all != 0 ) /*當bit裡有乙個狀態更改為1,那麼就執行下面操作*/

這樣子就很好的解決了需要在if裡寫多個或,需要同時判斷多次的問題。只需要統一判斷乙個值,然後執行共同的操作。

c語言 union聯合體

linux中聯合體union實現判斷little endian 和 big endian 大端和小端 1 聯合體的資料成員從低位元組開始對齊 2 little endian 和 big endian。little endian 和 big endian 是 cpu 存放資料的兩種不同順序。對於整型 ...

C語言之聯合體

聯合體,就是將幾種資料型別聯合起來的一種資料結構,但是它們共用乙個空間。怎麼理解呢?川劇變臉見過沒,就是來來回回的變來變去,給人看的眼花繚亂的,但是不管你怎麼變,面具下的臉卻始終不變。同樣的道理,各種資料型別就是各種臉譜,對外展現了不同的形象,唯一不變的就是它的記憶體空間的二進位制資料始終都是一樣的...

C語言聯合體union

c語言中的聯合體union 在c c 程式的編寫中,當多個基本資料型別或復合資料結構要占用同一片記憶體時,我們要使用聯合體 當多種型別,多個物件,多個事物只取其一時 我們姑且通俗地稱其為 n 選1 我們也 可以使用聯合體來發揮其長處。首先看一段 union myun u int k a int ma...