c++教程 C語言u(píng)nion的用法?
C語言u(píng)nion的用法?在C語言中,union的使用與struct的使用非常相似,主要區(qū)別在于union保持了足夠的空間來放置多個(gè)數(shù)據(jù)成員中的“一個(gè)”,而不是為每個(gè)數(shù)據(jù)成員配置空間。在union中,所
C語言u(píng)nion的用法?
在C語言中,union的使用與struct的使用非常相似,主要區(qū)別在于union保持了足夠的空間來放置多個(gè)數(shù)據(jù)成員中的“一個(gè)”,而不是為每個(gè)數(shù)據(jù)成員配置空間。在union中,所有數(shù)據(jù)成員共享一個(gè)空間,并且只能同時(shí)存儲(chǔ)一個(gè)數(shù)據(jù)成員,并且所有數(shù)據(jù)成員具有相同的起始點(diǎn)地址。具體情況:unionstatemachine{characteristentnumberchar*strdoubleexp}聯(lián)合只配置了足夠大的空間來容納數(shù)據(jù)成員的最大長度。在上面的示例中,最大長度是double類型,因此Statemachine的空間大小是double數(shù)據(jù)類型的大小。Union是一個(gè)特殊的類,是一種構(gòu)造類型的數(shù)據(jù)結(jié)構(gòu)??梢栽凇奥?lián)合”中定義許多不同的數(shù)據(jù)類型。被描述為“union”類型的變量可以加載由“union”定義的任何類型的數(shù)據(jù)。這些數(shù)據(jù)共享相同的內(nèi)存段以節(jié)省空間(還有另一種節(jié)省空間的類型:位字段)。這是一個(gè)非常特殊的地方,也是工會(huì)的一個(gè)特點(diǎn)。此外,與struct一樣,聯(lián)合默認(rèn)訪問也是公共的,并且具有成員函數(shù)。
C語言u(píng)nion的用法?
在C語言中,union的使用與struct的使用非常相似,主要區(qū)別在于union保持了足夠的空間來放置多個(gè)數(shù)據(jù)成員中的“一個(gè)”,而不是為每個(gè)數(shù)據(jù)成員配置空間所有數(shù)據(jù)成員共享一個(gè)公共空間,并且只能同時(shí)存儲(chǔ)一個(gè)數(shù)據(jù)成員。所有數(shù)據(jù)成員都有相同的起始地址。具體情況:Union Statemachine{character int number char*STR double exp}Union只配置足夠大的空間來容納數(shù)據(jù)成員的最大長度。例如,最大長度是double類型,因此Statemachine空間的大小是double數(shù)據(jù)類型的大小。Union是一個(gè)特殊的類,是一種構(gòu)造類型的數(shù)據(jù)結(jié)構(gòu)。可以在“聯(lián)合”中定義許多不同的數(shù)據(jù)類型。被描述為“union”類型的變量可以加載由“union”定義的任何類型的數(shù)據(jù)。這些數(shù)據(jù)共享相同的內(nèi)存段以節(jié)省空間(還有另一種節(jié)省空間的類型:位字段)。這是一個(gè)非常特殊的地方,也是工會(huì)的一個(gè)特點(diǎn)。此外,與struct一樣,聯(lián)合默認(rèn)訪問也是公共的,并且具有成員函數(shù)。
union用法?
他們有良好的聯(lián)合基礎(chǔ)。
希望我的回答能對(duì)您有所幫助
union本質(zhì)上是C語言中的一種結(jié)構(gòu),其用法與struct類似。當(dāng)用于聲明類型時(shí),應(yīng)在使用后綴表達(dá)式調(diào)用名稱變量名之前添加關(guān)鍵字union type name表達(dá)式標(biāo)識(shí)符但也有一些不同:顧名思義,工會(huì)是多個(gè)成員共享一段記憶。在編譯時(shí),選擇最長的成員進(jìn)行聲明。換句話說,在下面和程序片段中:也就是說,上面的union聲明相當(dāng)于內(nèi)存中的2。根據(jù)第一條的特點(diǎn),在給聯(lián)合成員賦值之后,需要注意的是,在使用時(shí)必須調(diào)用被賦值的成員。
C語言u(píng)nion的用法?
聯(lián)合體也稱為Commons。在我看來,下議院的名稱更為合理。
structure和struct都屬于C語言數(shù)據(jù)類型的結(jié)構(gòu)類型。
例如,
uniuon data{int i char c float f}x將公共主體類型名稱定義為數(shù)據(jù)類型,它有三個(gè)屬性,分別是
int i char c float f。這三個(gè)屬性一起占用內(nèi)存空間,因此在所選屬性中占用空間最多的一個(gè)是float f。它需要四個(gè)字節(jié)。由于共同占用,同一時(shí)間只能保留一個(gè)屬性內(nèi)容
如果是
struct data{int i char c float f}x,則表示結(jié)構(gòu)類型的名稱定義為data type,也就是三個(gè)屬性,但內(nèi)存中占用的空間是三個(gè)屬性的總和。如果int類型在編譯器中分配4個(gè)字節(jié),則分配的總字節(jié)數(shù)為4 1 4,總字節(jié)數(shù)為9。
因?yàn)樗菃为?dú)占用的,所以可以同時(shí)保留所有屬性內(nèi)容