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...