亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C語言初學者入門講座 第十四講 枚舉與位運算(2)

2019-11-17 05:43:30
字體:
來源:轉載
供稿:網友

  位域

  有些信息在存儲時,并不需要占用一個完整的字節, 而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省存儲空間,并使處理簡便,C語言又提供了一種數據結構,稱為“位域”或“位段”。所謂“位域”是把一個字節中的二進位劃分為幾個不同的區域, 并說明每個區域的位數。每個域有一個域名,答應在程序中按域名進行操作。 這樣就可以把幾個不同的對象用一個字節的二進制位域來表示。一、位域的定義和位域變量的說明位域定義與結構定義相仿,其形式為:

  strUCt 位域結構名

  { 位域列表 };

  其中位域列表的形式為: 類型說明符 位域名:位域長度

  例如:

struct bs
{
 int a:8;
 int b:2;
 int c:6;
};  

  位域變量的說明與結構變量說明的方式相同。 可采用先定義后說明,同時定義說明或者直接說明這三種方式。例如:

struct bs
{
 int a:8;
 int b:2;
 int c:6;
}data;

  說明data為bs變量,共占兩個字節。其中位域a占8位,位域b占2位,位域c占6位。對于位域的定義尚有以下幾點說明:

  1. 一個位域必須存儲在同一個字節中,不能跨兩個字節。如一個字節所??臻g不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如:

struct bs
{
 unsigned a:4
 unsigned :0 /*空域*/
 unsigned b:4 /*從下一單元開始存放*/
 unsigned c:4
}

  在這個位域定義中,a占第一字節的4位,后4位填0表示不使用,b從第二字節開始,占用4位,c占用4位。

  2. 由于位域不答應跨兩個字節,因此位域的長度不能大于一個字節的長度,也就是說不能超過8位二進位。

  3. 位域可以無位域名,這時它只用來作填充或調整位置。無名的位域是不能使用的。例如:

struct k
{
 int a:1
 int :2 /*該2位不能使用*/
 int b:3
 int c:2
};  

  從以上分析可以看出,位域在本質上就是一種結構類型, 不過其成員是按二進位分配的。

  二、位域的使用

  位域的使用和結構成員的使用相同,其一般形式為: 位域變量名·位域名 位域答應用各種格式輸出。

main(){
 struct bs
 {
  unsigned a:1;
  unsigned b:3;
  unsigned c:4;
 } bit,*pbit;
 bit.a=1;
 bit.b=7;
 bit.c=15;
 PRintf("%d,%d,%d/n",bit.a,bit.b,bit.c);
 pbit=&bit;
 pbit->a=0;
 pbit->b&=3;
 pbit->c=1;
 printf("%d,%d,%d/n",pbit->a,pbit->b,pbit->c);
}  

  上例程序中定義了位域結構bs,三個位域為a,b,c。說明了bs類型的變量bit和指向bs類型的指針變量pbit。這表示位域也是可以使用指針的。

  程序的9、10、11三行分別給三個位域賦值。( 應注重賦值不能超過該位域的答應范圍)程序第12行以整型量格式輸出三個域的內容。第13行把位域變量bit的地址送給指針變量pbit。第14行用指針方式給位域a重新賦值,賦為0。第15行使用了復合的位運算符"&=", 該行相當于: pbit->b=pbit->b&3位域b中原有值為7,與3作按位與運算的結果為3(111&011=011,十進制值為3)。同樣,程序第16行中使用了復合位運算"=", 相當于: pbit->c=pbit->c1其結果為15。程序第17行用指針方式輸出了這三個域的值。

  類型定義符typedef

  C語言不僅提供了豐富的數據類型,而且還答應由用戶自己定義類型說明符,也就是說答應由用戶為數據類型取“別名”。 類型定義符typedef即可用來完成此功能。例如,有整型量a,b,其說明如下: int aa,b; 其中int是整型變量的類型說明符。int的完整寫法為integer,

  為了增加程序的可讀性,可把整型說明符用typedef定義為: typedef int INTEGER 這以后就可用INTEGER來代替int作整型變量的類型說明了。 例如: INTEGER a,b;它等效于: int a,b; 用typedef定義數組、指針、結構等類型將帶來很大的方便,不僅使程序書寫簡單而且使意義更為明確,因而增強了可讀性。例如:

typedef char NAME[20]; 表示NAME是字符數組類型,數組長度為20。

  然后可用NAME 說明變量,如: NAME a1,a2,s1,s2;完全等效于: char a1[20],a2[20],s1[20],s2[20]
又如:

typedef struct stu{ char name[20];
 int age;
 char sex;
} STU;

  定義STU表示stu的結構類型,然后可用STU來說明結構變量: STU body1,body2;

  typedef定義的一般形式為: typedef 原類型名 新類型名 其中原類型名中含有定義部分,新類型名一般用大寫表示, 以便于區別。在有時也可用宏定義來代替typedef的功能,但是宏定義是由預處理完成的,而typedef則是在編譯時完成的,后者更為靈活方便。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日本高清在线| 亚洲一区二区中文字幕| 最新91在线视频| 国产精品久久久av| 国产精品自产拍在线观| 韩国国内大量揄拍精品视频| 亚洲精品日韩丝袜精品| 国产91精品高潮白浆喷水| 久久亚洲精品国产亚洲老地址| 欧美怡红院视频一区二区三区| 精品久久久久久亚洲国产300| 亚洲精品日韩欧美| 亚洲综合在线小说| 亚洲在线视频福利| 国产精品一二三在线| 久久久久女教师免费一区| 欧美裸体视频网站| 中文字幕亚洲欧美日韩在线不卡| 亚洲级视频在线观看免费1级| 日韩在线不卡视频| 欧美性猛交xxxx久久久| 国产精品美女免费视频| 久久在线免费视频| 国产美女精品视频免费观看| 国产91网红主播在线观看| 日韩精品视频免费专区在线播放| 97视频在线观看网址| 欧美日韩国产黄| 中文字幕欧美亚洲| 91欧美精品成人综合在线观看| 精品国产视频在线| 免费91在线视频| 国产精品羞羞答答| 国内免费久久久久久久久久久| 一本大道久久加勒比香蕉| 久久久精品视频成人| 久久国产精品视频| 日韩在线观看免费全| 欧美激情国产高清| 国产日韩精品电影| 国产日韩精品在线观看| 国产精品高潮粉嫩av| 久久成人18免费网站| 日韩美女视频中文字幕| 欧美一级电影久久| 亚洲专区国产精品| 日韩视频在线观看免费| 精品成人69xx.xyz| 91影院在线免费观看视频| 午夜精品久久久久久99热软件| 中文字幕日韩精品在线观看| 国产91露脸中文字幕在线| 97久久精品人人澡人人爽缅北| 亚洲色在线视频| xxxxxxxxx欧美| 国产精品视频资源| 亚洲91精品在线观看| 热re99久久精品国产66热| 日韩欧美亚洲成人| 欧美精品在线看| 国产69精品99久久久久久宅男| 亚洲精品白浆高清久久久久久| 日韩在线观看免费高清| 久久久久久亚洲精品| 欧美www在线| 欧美亚洲激情在线| 欧美日韩国产精品一区二区不卡中文| 亚洲精品中文字幕av| 久久69精品久久久久久国产越南| 欧美成人精品xxx| 欧美日韩国产成人在线| 国产一区在线播放| 精品视频久久久| 日韩久久精品成人| 欧美精品电影在线| 久久久国产视频91| 欧美午夜精品久久久久久久| 色综合天天狠天天透天天伊人| 4444欧美成人kkkk| 欧美人成在线视频| 国产精品吴梦梦| 亚洲国产精品网站| 亚洲综合一区二区不卡| 欧美日韩国产专区| 中日韩美女免费视频网站在线观看| 91大神福利视频在线| 欧美精品久久久久| 欧美另类极品videosbest最新版本| 成人福利网站在线观看| 大荫蒂欧美视频另类xxxx| 欧美丝袜一区二区三区| 亚洲免费高清视频| 亚洲理论在线a中文字幕| 亚洲美女av网站| 欧美日韩综合视频| 精品视频一区在线视频| 国产精品一区二区三区久久| 日韩高清免费观看| 亲子乱一区二区三区电影| 国产欧美一区二区白浆黑人| 91av视频在线观看| 久久色精品视频| 国产成人精品999| 国产一区二区黄| 日韩免费av在线| 亚洲网站在线看| 日本高清不卡在线| 亚洲一区二区免费在线| 国产中文字幕91| 国产美女久久久| 菠萝蜜影院一区二区免费| 欧美激情在线观看视频| 久久91超碰青草是什么| 国产97在线视频| 国产精品久久久久久久久久新婚| 国产精品福利网| 国产成人一区二区| 日韩在线观看免费全集电视剧网站| 欧美激情欧美激情| 国产精品嫩草影院一区二区| 欧美中文字幕在线播放| 亚洲91精品在线| 国产美女直播视频一区| 久久色在线播放| 日韩av在线免费| 国产乱人伦真实精品视频| www国产精品视频| 亚洲字幕一区二区| 大桥未久av一区二区三区| 亚洲激情视频网| 欧美日韩xxx| 日韩最新中文字幕电影免费看| 国产精品一区二区久久国产| 在线播放国产一区中文字幕剧情欧美| 日韩精品黄色网| 久久精品国产亚洲精品2020| 777午夜精品福利在线观看| 国产精品丝袜视频| 精品国产乱码久久久久久婷婷| 最近日韩中文字幕中文| 亚洲香蕉伊综合在人在线视看| 97成人精品区在线播放| 欧美人成在线视频| 欧美怡春院一区二区三区| 亚洲电影免费观看高清| 国产精品青青在线观看爽香蕉| 欧美在线欧美在线| 国产精品精品视频| 国产日本欧美一区| 热门国产精品亚洲第一区在线| 国产不卡精品视男人的天堂| 色妞色视频一区二区三区四区| 国产精品三级在线| 中文字幕日韩专区| 日日狠狠久久偷偷四色综合免费| 成人黄色av网站| 中文字幕亚洲无线码a| 91久久久久久国产精品| 色樱桃影院亚洲精品影院| 91精品国产91久久久久久久久| 日韩久久免费视频| 久久99精品视频一区97| 91精品国产色综合久久不卡98| 日韩欧美在线视频|