C語言中typedef union型別的使用方法

2022-09-21 19:36:13 字數 570 閱讀 7656

使用c語言時,常常使用struct,對於union型別卻幾乎沒有用過,只知道它是聯合型別,各欄位共享一塊記憶體,實際應用中卻不知道它的具體用途。

今天讀《程式設計卓越之道》中看到有對其使用的簡單介紹,記錄在此:

首先摘錄一下struct和union的重要區別:

struct為每個欄位在不同的偏移處分配儲存空間,而聯合則將所有的字段重疊在記憶體中的相同偏移處。

聯合型別的用途:

1、建立別名。別名是記憶體物件原名之外的其他名字。比如在程式中經常會用到將乙個資料型別強制轉換為另乙個型別,這個操作可以使用聯合來代替。

比如typedef unioncharofunion v;

可以通過v.u來操作乙個uint32型別的物件,當需要將uint32變數的低端位元組看做乙個字元的時候,只需要訪問v.c就可以了。

實際應用中,大多數的協議結構定義中,都會使用union型別來定義。

2、使用聯合來將較大的物件分解成組成這個物件的各個位元組。(尤其在微控制器程式設計中將float拆解成char)

typedef uniondemo;

int main(int argc, char **ar**)

C語言中的 ,

c語言中的 今天在分析乙份原始碼的時候遇到了如下 define uf call x report file line x,x static int report char file,int line,char call,int irc return irc 網上參考 cpp view plain c...

c語言中 作用

和 操作符是和 define巨集使用的.使用 使在 後的首個引數返回為乙個帶引號的字串.例如,命令 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為 cout hello world endl 使用 鏈結 前後的...

C語言中enum,sizeof,typedef分析

事物的難度遠遠低於對事物的恐懼!這節我們來分析下enum,sizeof,typedef三個關鍵字。enum關鍵字 enum是c語言中的一種自定義型別 enum值是可以根據需要自定義的整型值 第乙個定義的enum值預設為0 預設情況下的enum值是在前乙個定義值的基礎上加1 enum型別的變數只能取定...