C語言聯(lián)合體,位段,及枚舉類型


前言
上章節(jié)主要針對結(jié)構(gòu)體給大家做一介紹,不清楚的可以回顧上一章節(jié),本章節(jié)主要講解C語言中的聯(lián)合體,位段,以及枚舉類型。

C語言聯(lián)合體
在C語言中,聯(lián)合體是不同數(shù)據(jù)類型的元素的集合。聯(lián)合體用于以C編程語言創(chuàng)建用戶定義的數(shù)據(jù)類型。作為用于創(chuàng)建用戶定義的數(shù)據(jù)類型的聯(lián)合體,該聯(lián)合體也被
聯(lián)合體是一個單一名稱下不同類型元素的集合,它充當(dāng)C中用戶定義的數(shù)據(jù)類型。(聯(lián)合體也叫做共用體)。

如何創(chuàng)建聯(lián)合體
要在c中創(chuàng)建聯(lián)合體,我們使用關(guān)鍵字“ union ”。我們使用以下語法在c編程語言中創(chuàng)建聯(lián)合。

以下是創(chuàng)建一個名為Student的工會的示例,該聯(lián)合體用于保存學(xué)生記錄
每個聯(lián)合必須以分號(;)結(jié)束。
“union”是一個關(guān)鍵字,必須僅使用小寫字母。

如何使用聯(lián)合體變量
創(chuàng)建和使用聯(lián)合體變量
在C語言中,有兩種創(chuàng)建聯(lián)合變量的方法。我們可以在定義聯(lián)合體時創(chuàng)建變量,也可以在使用聯(lián)合體類型去定義變量。要使用聯(lián)合體變量訪問成員,我們使用點(diǎn)(.)運(yùn)算符。考慮以下示例代碼

在上面的例子程序,結(jié)合變量stud2訪問聯(lián)合體的成員時,我們都使用點(diǎn)(.)運(yùn)算符。

聯(lián)合體的內(nèi)存分配
當(dāng)用c語言使用


特殊結(jié)構(gòu)體之位段
當(dāng)我們使用c語言使用結(jié)構(gòu)時,結(jié)構(gòu)變量所需的內(nèi)存就是該結(jié)構(gòu)的所有單個成員所需的內(nèi)存之和。為了節(jié)省內(nèi)存或限制結(jié)構(gòu)成員的內(nèi)存,我們使用位域概念。使用位域,我們可以指定要為結(jié)構(gòu)的各個成員分配的內(nèi)存。要了解位域,讓我們考慮以下示例代碼...
C語言中的日期結(jié)構(gòu)
在這里,Date結(jié)構(gòu)的變量分配12個字節(jié)的內(nèi)存。在上面的示例結(jié)構(gòu)中,成員day和month都不需要4個字節(jié)的內(nèi)存。因?yàn)樘鞌?shù)只存儲1到31的值,需要5位二進(jìn)制位,而月份只存儲1到12的值,需要4位二進(jìn)制位。因此,為了節(jié)省內(nèi)存,我們使用位段。考慮具有位段的以下結(jié)構(gòu):
C語言中的日期結(jié)構(gòu)
在這里,Date結(jié)構(gòu)的變量分配8個字節(jié)的內(nèi)存。

故位段把數(shù)據(jù)存儲精確到二進(jìn)制位,從而達(dá)到節(jié)省內(nèi)存的。

枚舉類型
在C語言中,枚舉用于創(chuàng)建用戶定義的數(shù)據(jù)類型。通過枚舉,整數(shù)常量被分配了名稱,我們在程序中使用這些名稱。在編程中使用名稱可以使其更易讀和易于維護(hù)。
枚舉是通過將名稱分配給整數(shù)常量來創(chuàng)建用戶定義的數(shù)據(jù)類型的過程
我們使用關(guān)鍵字enum創(chuàng)建枚舉數(shù)據(jù)類型。枚舉的一般語法如下:
枚舉{name1,name2,name3,...}
在以上語法中,將常數(shù)'0'分配給name1,將積分常數(shù)'1'分配給name2,依此類推。
我們還可以如下分配自己的積分常數(shù):
枚舉{name1 = 10,name2,name3 = 15,...}
在以上語法中,將積分常數(shù)'10'分配給name1,將常數(shù)'31'分配給name2,依此類推。如下測試代碼:

通常程序中同類型具有特殊含義的常量我們會聲明為枚舉類型,增加可讀性 ,例如顏色,星期數(shù),月份,方向等等。

尾言
作業(yè):使用枚舉類型,實(shí)現(xiàn)按鍵交互基本框架
現(xiàn)在多學(xué)一樣本事,以后就能少說一句求人的話。
