华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓課程 | 模擬考場 | 考試論壇  
全國  |             |          |          |          |          |         
  當前位置:計算機等級 > 二級考試 > C語言程序設計 > C語言輔導 > 文章內容
  

全國計算機等級考試二級C語言入門教程(122)

中華IT學院   【 】  [ 2016年9月20日 ]

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


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->c|1
其結果為15。程序第 17行用指針方式輸出了這三個域的值。


類型定義符typedef


C語言不僅提供了豐富的數(shù)據(jù)類型,而且還允許由用戶自己定義類型說明符,也就是說允許由用戶為數(shù)據(jù)類型取“別
名”。 類型定義符typedef即可用來完成此功能。例如,有整型量a,b,其說明如下: int aa,b; 其中int是整型變
量的類型說明符。int的完整寫法為integer,
為了增加程序的可讀性,可把整型說明符用 typedef定義為: typedef int INTEGER 這以后就可用 INTEGER來代替
int作整型變量的類型說明了。 例如: INTEGER a,b;它等效于: int a,b; 用typedef定義數(shù)組、指針、結構等類
型將帶來很大的方便,不僅使程序書寫簡單而且使意義更為明確,因而增強了可讀性。例如:
typedef char NAME[20]; 表示 NAME是字符數(shù)組類型,數(shù)組長度為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 原類型名 新類型名 其中原類型名中含有定義部分,新類型名一般用大寫表示,

便于區(qū)別。在有時也可用宏定義來代替 typedef的功能,但是宏定義是由預處理完成的,而typedef則是在編譯時完
成的,后者更為靈活方便。

分享到:
本文糾錯】【告訴好友】【打印此文】【返回頂部
將考試網添加到收藏夾 | 每次上網自動訪問考試網 | 復制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關于本站  網站聲明  廣告服務  聯(lián)系方式  站內導航  考試論壇
Copyright © 2006-2017 中華考試網(Examw.com) All Rights Reserved  營業(yè)執(zhí)照
丰顺县| 隆回县| 古田县| 五家渠市| 富平县| 马公市| 喀什市| 出国| 阿克| 盐边县| 余干县| 睢宁县| 淄博市| 翼城县| 丹凤县| 长兴县| 六安市| 古交市| 即墨市| 普兰县| 驻马店市| 马边| 方正县| 肥东县| 龙海市| 蓬安县| 麟游县| 阿图什市| 西丰县| 无为县| 宁晋县| 砀山县| 鄂伦春自治旗| 岑巩县| 青铜峡市| 十堰市| 岢岚县| 万源市| 离岛区| 正镶白旗| 新泰市|