c語(yǔ)言聯(lián)合體的使用 C語(yǔ)言中聯(lián)合體(union)的使用?
C語(yǔ)言中聯(lián)合體(union)的使用?//C語(yǔ)言有并集。下面是一個(gè)使用Union的小例子。#包括(&L)。H>intmain(){inta=1chastr[]=“這是一個(gè)字符串!“unionitor
C語(yǔ)言中聯(lián)合體(union)的使用?
//C語(yǔ)言有并集。下面是一個(gè)使用Union的小例子。#包括(&L)。H>intmain(){inta=1chastr[]=“這是一個(gè)字符串!“unionitorpointer{intnchar*Pt}unionitorpointerv1v1。N=aprintf(%dN“,v1。N) 第1版。Pt=strprintf(%sn“,v1。PT)return0}
這個(gè)聯(lián)合體也被稱(chēng)為Commons。在我個(gè)人看來(lái),下議院的名稱(chēng)更為合理。structure和struct都屬于C語(yǔ)言數(shù)據(jù)類(lèi)型的結(jié)構(gòu)類(lèi)型。例如,uniuon data{int i char c float f}x將公共主體類(lèi)型名稱(chēng)定義為數(shù)據(jù)類(lèi)型,并且有三個(gè)屬性,即int i char c float f。這三個(gè)屬性一起占用內(nèi)存空間,因此在所選屬性中占用空間最多的是float f。它需要四個(gè)字節(jié)。由于共同的職業(yè),同一時(shí)間只能保留一個(gè)屬性?xún)?nèi)容。如果是struct data{int i char c float f}x,則表示定義的結(jié)構(gòu)類(lèi)型的名稱(chēng)是data type,這也是三個(gè)屬性。但是,內(nèi)存中占用的空間是這三個(gè)屬性的總和。如果int類(lèi)型在編譯器中分配4個(gè)字節(jié),則分配的總字節(jié)數(shù)為4 1 4,總字節(jié)數(shù)為9。因?yàn)樗菃为?dú)使用的,所以可以同時(shí)保留所有屬性?xún)?nèi)容
當(dāng)數(shù)據(jù)超過(guò)8位時(shí),必須使用兩個(gè)或更多字節(jié)來(lái)存儲(chǔ)。例如,如果int類(lèi)型是16位數(shù)據(jù)類(lèi)型,則十進(jìn)制數(shù)256被分成兩個(gè)字節(jié)進(jìn)行存儲(chǔ),即高字節(jié)是0x01,低字節(jié)是0xff。在存儲(chǔ)時(shí),它應(yīng)該是內(nèi)存中高字節(jié)的低位地址和內(nèi)存中低字節(jié)的高位地址。