<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
位元欄的宣告和結構是類似的,有兩個不同:
①位元欄的成員必須是 int、unsigned int 或signed int
②位元欄的成員名後邊有一個冒號和一個數位
例如:
struct A { //4byte=32bit int 4個位元組 //開闢4個位元組 int _a : 2 ;//30(分配了2位元組,還剩30位元組) int _b : 5 ;//25 int _c : 10 ;//15 //在開闢4個位元組 int _d : 30 ;//超出剩餘的開闢記憶體大小,根據C標準可能用前面的15位元組在開闢15位元組 //也可能不用重新開闢30位元組 };
簡言之:位元欄就是規定變數佔的位元位!
特別提醒:
1. 位元欄的成員可以是 int unsigned int signed int 或者是 char (屬於整形家族)型別
2. 位元欄的空間上是按照需要以4個位元組( int )或者1個位元組( char )的方式(char準確來說是int型別,反組合內部處理為int)來開闢的
3. 位元欄涉及很多不確定因素,位元欄是不跨平臺的,注重可移植的程式應該避免使用位元欄(問題在於多餘記憶體使用和開闢上) 例如:
struct S { char a:3; char b:4; char c:5; char d:4; }; struct S s = {0}; s.a = 10; s.b = 12; s.c = 3; s.d = 4;
位元欄的跨平臺問題:
1. int 位元欄被當成有符號數還是無符號數是不確定的。
2. 位元欄中最大位的數目不能確定。(16位元機器最大16,32位元機器最大32,寫成27,在16位元機 器會出問題。
3. 位元欄中的成員在記憶體中從左向右分配,還是從右向左分配標準尚未定義。
4. 當一個結構包含兩個位元欄,第二個位元欄成員比較大,無法容納於第一個位元欄剩餘的位時,是 捨棄剩餘的位還是利用,這是不確確定的。
總結: 跟結構相比,位元欄可以達到同樣的效果,但是可以很好的節省空間,但是有跨平臺的問題存在
位元欄的應用:
列舉顧名思義就是一一列舉。
把可能的取值一一列舉。
例如:
//(可能取值都是有值的,預設從0開始,一次遞增1,當然在定義的時候也可以賦初值) enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun }; enum Sex//性別 { MALE, FEMALE, SECRET }; enum Color//顏色 { RED, GREEN, BLUE }; //以上定義的 enum Day , enum Sex , enum Color 都是列舉型別 //{}中的內容是列舉型別的可能取值,也叫列舉常數 //列舉的初始化 enum Color//顏色 { RED=1, GREEN=2, BLUE=4 };
我們可以使用 #define 定義常數,為什麼非要使用列舉?
列舉的優點:
1. 增加程式碼的可讀性和可維護性
2. 和 #define 定義的識別符號比較列舉有型別檢查,更加嚴謹。
3. 防止了命名汙染(封裝)
4. 便於偵錯
5. 使用方便,一次可以定義多個常數
列舉的使用:
enum Color // 顏色 { RED = 1 , GREEN = 2 , BLUE = 4 }; enum Color clr = GREEN ; // 只能拿列舉常數給列舉變數賦值,才不會出現型別的差異。 clr = 5; //這樣是錯誤的!
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45