1. 程式人生 > >struct和union區別

struct和union區別

組成 最大 字節對齊 最大的 字節 原來 方式 有關 標準

主要區別有以下幾點:

1、在存儲多個成員信息時,編譯器會自動非是投入出題人每個成員分配存儲空間,struct可以存儲多個成員變量信息;而union每個成員會共用同一個存儲空間,且只能存儲最後一個成員的信息;

2、都是由多個不同的數據類型成員組成,但在任何同一時刻,union值存放了一個被先選中的成員,而結構體struct的所有成員都存在;

3、對於union的不同成員賦值,將會對其他成員重寫,原來的成員值就不存在了,而對struct的不同成員賦值是互不影響的;

4、系統分配給union的內存size就是size最大的成員所需空間大小,struct在分配空間時,根據成員類型不同,會存在字節對齊情況,具體對齊標準和機器有關,可能是4字節或8字節等對齊方式。

struct和union區別