c語言共同體定義與使用 C語言中聯合體(union)的使用?
C語言中聯合體(union)的使用?聯合體也被稱為Commons。在我看來,下議院的名稱更為合理。structure和struct都屬于C語言數據類型的結構類型。例如,uniuon data{int
C語言中聯合體(union)的使用?
聯合體也被稱為Commons。在我看來,下議院的名稱更為合理。structure和struct都屬于C語言數據類型的結構類型。例如,uniuon data{int i char c float f}x將公共主體類型名稱定義為數據類型,并且有三個屬性,即int i char c float f。這三個屬性一起占用內存空間,因此在所選屬性中占用空間最多的是float f。它需要四個字節(jié)。由于共同的職業(yè),同一時間只能保留一個屬性內容。如果是struct data{int i char c float f}x,則表示定義的結構類型的名稱是data type,這也是三個屬性。但是,內存中占用的空間是這三個屬性的總和。如果int類型在編譯器中分配4個字節(jié),則分配的總字節(jié)數為4 1 4,總字節(jié)數為9。因為它是單獨使用的,所以可以同時保留所有屬性內容
struct test{char name[10]/*共10字節(jié)*/[print score/*2字節(jié)*/[print number/*2字節(jié)*/}stu,那么stu在內存(在VC中)中總共占用102=14字節(jié)的環(huán)境,它將是16字節(jié),編譯器要求它是4的整數倍)。按順序訪問內容不會干擾內存段中的其他數據(例如,輸入名稱不會影響分數的內容); typedef union是命名共享權重的方法。Typedef是C語言的一個關鍵字,用于定義數據類型的新名稱。 2. 這里的數據類型包括內部數據類型(int、char等)和自定義數據類型(struct等)。 3. 在編程中使用typedef有兩個目的:一個是給變量起一個新的名字,這個名字很容易記住,并且有明確的含義;另一個是簡化一些更復雜的類型聲明。 4. Format typedef original type name new type name Commons:sizeof(Union data1)的值是16。默認情況下,Commons的最大基本類型是double,需要8個字節(jié),因此Commons與8對齊。字符數組C2占用9字節(jié),因此整個公共體應該占用9字節(jié),但根據對齊原則,實際分配給它的內存是16字節(jié)。Struct:Struct數據與8字節(jié)對齊,long類型的成員1分配8字節(jié)。s、 I、C和a最初分別占用4、2、1和10字節(jié)??紤]到對齊方式,s分配4個字節(jié),I分配2個字節(jié),C分配2個字節(jié)。此時,8個字節(jié)剛剛用完。最初分配了10個字節(jié)。考慮到對齊,整個結構占用的存儲空間是8的倍數,因此分配了16個字節(jié)。因此,結構數據占用84216=32字節(jié)。