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

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

C語言入門之枚舉與位運算(2)

2019-11-17 05:23:46
字體:
來源:轉載
供稿:網友
  位域

   有些信息在存儲時,并不需要占用一個完整的字節, 而只需占幾個或一個二進制位。例如在存放一個開關量時,只有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;
    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
欧美最猛黑人xxxx黑人猛叫黄| 欧美一区亚洲一区| 欧美午夜视频一区二区| 2024亚洲男人天堂| 中文字幕综合一区| 国产精品wwww| 日韩av片免费在线观看| 日韩在线视频播放| 日韩精品高清视频| 欧美另类极品videosbest最新版本| 91色精品视频在线| 欧美综合国产精品久久丁香| 亚洲一区二区三区成人在线视频精品| 国产成人啪精品视频免费网| 国产精品美女免费| 亚洲第一视频网| 色偷偷9999www| 一区二区三区日韩在线| 国产精品黄色av| 这里只有精品视频在线| 国产精品高潮呻吟久久av黑人| 欧美成人精品在线观看| 国产精品无av码在线观看| 精品国产成人av| 亚洲韩国欧洲国产日产av| 欧美在线一级va免费观看| 国产精品视频导航| 欧美性xxxx18| 日韩欧美国产骚| 国产成人精品一区二区三区| 国内精品久久久久久久| 国产精品久久久久999| 国语自产精品视频在线看| 国产美女久久久| 国产日韩精品在线播放| 国产精品人人做人人爽| 91网在线免费观看| 亚洲精品免费av| 成人免费看黄网站| 欧美日韩中文字幕| 国产精品都在这里| 国产精品爱久久久久久久| 欧美影院成年免费版| 日韩欧美精品中文字幕| 亚洲字幕在线观看| 日韩国产精品视频| 国产精品色视频| 国产精品久久久久久久天堂| 国产亚洲精品一区二555| 亚洲最大成人免费视频| 欧美国产日韩一区二区在线观看| 日韩中文字幕网站| 亚洲欧美中文另类| 亚洲国产日韩欧美在线图片| 91在线观看免费观看| 欧美成人亚洲成人日韩成人| 精品二区三区线观看| 91精品国产乱码久久久久久久久| 亚洲免费伊人电影在线观看av| 亚洲图片欧美午夜| 日本精品一区二区三区在线| 欧美高清无遮挡| 欧美极品少妇xxxxⅹ免费视频| 91大神福利视频在线| 久久亚洲综合国产精品99麻豆精品福利| 日韩中文综合网| 亚洲精品欧美日韩专区| 国产精品一区二区电影| 国产精品aaa| 欧美美最猛性xxxxxx| 午夜精品福利视频| 亚洲第一精品福利| 日韩中文字幕亚洲| 欧美一区二粉嫩精品国产一线天| 久久综合国产精品台湾中文娱乐网| 国产在线播放不卡| 久久精品视频在线观看| 亚洲一区二区三区在线视频| 欧美日韩国产丝袜美女| 日韩欧美在线观看视频| 国产一区二区三区丝袜| 尤物yw午夜国产精品视频明星| 亚洲精品国产精品国自产在线| 欧美成人精品在线观看| 欧美又大又粗又长| 亚洲人成电影网站色www| 久久精品99久久久久久久久| 欧美俄罗斯乱妇| 日韩精品在线观看一区二区| 久久久人成影片一区二区三区| 色爱av美腿丝袜综合粉嫩av| 日韩中文字幕不卡视频| 一区二区中文字幕| 一区二区三区久久精品| 国产精品视频区1| 欧美国产日产韩国视频| 中文字幕九色91在线| 欧美插天视频在线播放| 亚洲高清福利视频| 国产成人福利网站| 亚洲美女精品成人在线视频| 欧美尤物巨大精品爽| 中文字幕在线视频日韩| 国产丝袜一区二区三区| 亚洲一区二区三区乱码aⅴ蜜桃女| 成人女保姆的销魂服务| 在线性视频日韩欧美| 日本伊人精品一区二区三区介绍| 久久综合88中文色鬼| 欧美大学生性色视频| 最新亚洲国产精品| 亚洲大胆人体视频| 日本不卡高字幕在线2019| 久久中文精品视频| 国产精品色婷婷视频| 97香蕉超级碰碰久久免费软件| 国产日韩精品入口| 91久久久久久国产精品| 久久久久久com| 日韩中文字幕第一页| 欧美激情国产日韩精品一区18| 中文字幕亚洲无线码在线一区| 国产精品视频地址| 欧美精品www| 成人网在线免费观看| 国产精品看片资源| 欧美极品少妇全裸体| 午夜免费久久久久| 久久精品色欧美aⅴ一区二区| 在线观看欧美www| 日韩综合视频在线观看| 成人精品视频99在线观看免费| 久久综合伊人77777蜜臀| 欧美国产日韩精品| 在线视频日本亚洲性| 久久亚洲精品一区| 日本电影亚洲天堂| 欧美激情视频在线| 亚洲全黄一级网站| 九九热最新视频//这里只有精品| 日韩视频免费观看| 欧美精品在线免费| 亚洲伊人第一页| 国产精品美女午夜av| 91夜夜揉人人捏人人添红杏| 亚洲白虎美女被爆操| 欧美另类在线播放| 91国语精品自产拍在线观看性色| 亚洲色图激情小说| 日韩欧美aⅴ综合网站发布| 亚洲free嫩bbb| 国产精品ⅴa在线观看h| 国产欧美日韩视频| 亚洲精品电影在线观看| 欧美精品在线网站| 久久精品视频在线| 久久久久久网站| 国产精品444| 国内精品视频一区| 亚洲精品久久久久久久久久久久久| 亚洲精品白浆高清久久久久久| 欧美精品免费在线| 亚洲国产精品高清久久久| 91在线高清视频|