結構體(structure)是一種構造型別,它是由若干“成員”組成的。每一個成員可以是一個基本資料型別或者又是一個構造型別,而且每個成員的資料型別可以相同也可以不相同。共同體(union)將幾種不同的變數儲存在同一記憶體單元中,也就是使用覆蓋技術,幾個變數互相覆蓋,這種幾個不同的變數共同佔用一段記憶體的結構,可見二者最大的區別就是所佔用的記憶體,結構體(structure)所佔用的記憶體是分量記憶體之和,共同體(union)所佔用的記憶體是等於最大的分量的記憶體。具體來說,結構體(structure)與共同體(union)主要有以下區別:1.結構體(structure)與共同體(union)都是由多個不同的資料型別成員組成,但在任何同一時刻,共同體(union)中只存放了一個被選中的成員,而結構體(structure)的所有成員都存在。在結構體(structure)中,各成員都佔有自己的記憶體空間,它們是同時存在的。一個結構體(structure)變數的總長度等於所有成員長度之和。在共同體(union)中,所有成員不能同時佔用它的記憶體空間,它們不能同時存在。共同體(union)變數的長度等於最長的成員的長度。2.對於共同體(union)的不同成員賦值,將會對其它成員重寫,原來成員的值就不存在了,而對於結構體(structure)的不同成員賦值是互不影響的。
結構體(structure)是一種構造型別,它是由若干“成員”組成的。每一個成員可以是一個基本資料型別或者又是一個構造型別,而且每個成員的資料型別可以相同也可以不相同。共同體(union)將幾種不同的變數儲存在同一記憶體單元中,也就是使用覆蓋技術,幾個變數互相覆蓋,這種幾個不同的變數共同佔用一段記憶體的結構,可見二者最大的區別就是所佔用的記憶體,結構體(structure)所佔用的記憶體是分量記憶體之和,共同體(union)所佔用的記憶體是等於最大的分量的記憶體。具體來說,結構體(structure)與共同體(union)主要有以下區別:1.結構體(structure)與共同體(union)都是由多個不同的資料型別成員組成,但在任何同一時刻,共同體(union)中只存放了一個被選中的成員,而結構體(structure)的所有成員都存在。在結構體(structure)中,各成員都佔有自己的記憶體空間,它們是同時存在的。一個結構體(structure)變數的總長度等於所有成員長度之和。在共同體(union)中,所有成員不能同時佔用它的記憶體空間,它們不能同時存在。共同體(union)變數的長度等於最長的成員的長度。2.對於共同體(union)的不同成員賦值,將會對其它成員重寫,原來成員的值就不存在了,而對於結構體(structure)的不同成員賦值是互不影響的。