c語言的union和大小端模式

2021-06-17 20:18:10 字數 316 閱讀 3108

在c語言中允許不同型別的資料使用同一段記憶體,也就是不容型別的變數存放起始位址相同的記憶體中,雖然他們占用的位元組數可能不同,但是起始位址相同。共用體就是這樣的型別,它採用的是覆蓋儲存技術,允許不同型別資料互相覆蓋,共享同一段記憶體。

**如下:

#include

union x;

void main()

雖然,沒有給ch[2]賦值,但是

執行結果是:00000001,00000001

以上編譯器預設的是小端對齊,小端模式的是:高位放高位元組,地位放低位元組。。但是keil c51則為大端模式,它是高位放低位元組,地位放高位元組。

C語言union 關鍵字與大小端模式

union 關鍵字的用法與struct 的用法非常類似。union 維護足夠的空間來置放多個資料成員中的 一種 而不是為每乙個資料成員配置空間,在union 中所有的資料成員共用乙個空間,同一時間只能儲存其中乙個資料成員,所有的資料成員具有相同的起始位址。例子如下 union statemachin...

雜項 C語言中union與大小端模式的理解

union聯合體 先看定義方法,他和結構體的定義是相同的 union dtdata 在看看他有什麼特性 printf d n sizeof data printf d n sizeof data.b printf d n sizeof data.a printf p n data.a printf ...

Union 公用體判斷大小端模式

通過使用union可以知道自己所用的編譯器是大端模式還是小端模式。例1 includeusing namespace std union un u int main else if u.ch 0 輸出位址看一下 cout 號的優先順序高於 運算子,所以加不加括號都是乙個效果。上面的 u.ch和 u....