union与struct的区别?
生活随笔
收集整理的這篇文章主要介紹了
union与struct的区别?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
union與struct的區別?
1)union 維護足夠的空間來置放多個數據成員中的“一種”,而不是為每一個數據成員配置空間,在union 中所有的數據成員共用一個空間,同一時間只能儲存其中一個數據成員,所有的數據成員具有相同的起始地址。例子如下:?
union StateMachine?
{?
char character;?
int number;
char *str;
double exp;?
};
2)一個union 只配置一個足夠大的空間以來容納最大長度的數據成員,以上例而言,最大長度是double 型態,所以StateMachine 的空間大小就是double 數據類型的大小。
3)在C++里,union 的成員默認屬性頁為public
4)union 主要用來壓縮空間
1)union 維護足夠的空間來置放多個數據成員中的“一種”,而不是為每一個數據成員配置空間,在union 中所有的數據成員共用一個空間,同一時間只能儲存其中一個數據成員,所有的數據成員具有相同的起始地址。例子如下:?
union StateMachine?
{?
char character;?
int number;
char *str;
double exp;?
};
2)一個union 只配置一個足夠大的空間以來容納最大長度的數據成員,以上例而言,最大長度是double 型態,所以StateMachine 的空間大小就是double 數據類型的大小。
3)在C++里,union 的成員默認屬性頁為public
4)union 主要用來壓縮空間
5)如果一些數據不可能在同一時間同時被用到,則可以使用union。
6)union 型數據所占的空間等于其最大的成員所占的空間
7)對union 型的成員的存取都是相對于該聯合體基地址的偏移量為0 處開始,也就是聯合體的訪問不論對哪個變量的存取都是從union 的首地址位置開始。
總結
以上是生活随笔為你收集整理的union与struct的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sizeof 是关键字不是函数!使用si
- 下一篇: 深入理解int a[5];