华南俳烁实业有限公司

考試首頁(yè) | 考試用書(shū) | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
全國(guó)  |             |          |          |          |          |         
  當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > C語(yǔ)言程序設(shè)計(jì) > C語(yǔ)言輔導(dǎo) > 文章內(nèi)容
  

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言入門(mén)教程(120)

中華IT學(xué)院   【 】  [ 2016年5月25日 ]

位域


有些信息在存儲(chǔ)時(shí),并不需要占用一個(gè)完整的字節(jié),而只需占幾個(gè)或一個(gè)二進(jìn)制位。例如在存放一個(gè)開(kāi)關(guān)量時(shí),只有
0和1 兩種狀態(tài),用一位二進(jìn)位即可。為了節(jié)省存儲(chǔ)空間,并使處理簡(jiǎn)便,C語(yǔ)言又提供了一種數(shù)據(jù)結(jié)構(gòu),稱為“位
域”或“位段”。所謂“位域”是把一個(gè)字節(jié)中的二進(jìn)位劃分為幾個(gè)不同的區(qū)域, 并說(shuō)明每個(gè)區(qū)域的位數(shù)。每個(gè)域有
一個(gè)域名,允許在程序中按域名進(jìn)行操作。這樣就可以把幾個(gè)不同的對(duì)象用一個(gè)字節(jié)的二進(jìn)制位域來(lái)表示。一、位域
的定義和位域變量的說(shuō)明位域定義與結(jié)構(gòu)定義相仿,其形式為:
struct 位域結(jié)構(gòu)名
{ 位域列表 };
其中位域列表的形式為: 類型說(shuō)明符 位域名:位域長(zhǎng)度
例如:


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


位域變量的說(shuō)明與結(jié)構(gòu)變量說(shuō)明的方式相同。 可采用先定義后說(shuō)明,同時(shí)定義說(shuō)明或者直接說(shuō)明這三種方式。例如:


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


說(shuō)明 data為 bs變量,共占兩個(gè)字節(jié)。其中位域 a占 8位,位域b占2位,位域 c占6位。對(duì)于位域的定義尚有以下
幾點(diǎn)說(shuō)明:


1. 一個(gè)位域必須存儲(chǔ)在同一個(gè)字節(jié)中,不能跨兩個(gè)字節(jié)。如一個(gè)字節(jié)所?臻g不夠存放另一位域時(shí),應(yīng)從下一單元起
存放該位域。也可以有意使某位域從下一單元開(kāi)始。例如:

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

在這個(gè)位域定義中,a占第一字節(jié)的4位,后 4位填 0表示不使用,b從第二字節(jié)開(kāi)始,占用 4位,c占用 4位。

2. 由于位域不允許跨兩個(gè)字節(jié),因此位域的長(zhǎng)度不能大于一個(gè)字節(jié)的長(zhǎng)度,也就是說(shuō)不能超過(guò) 8位二進(jìn)位。
3. 位域可以無(wú)位域名,這時(shí)它只用來(lái)作填充或調(diào)整位置。無(wú)名的位域是不能使用的。例如:
struct k
{
int a:1
int :2 /*該2位不能使用*/
int b:3
int c:2
};


從以上分析可以看出,位域在本質(zhì)上就是一種結(jié)構(gòu)類型, 不過(guò)其成員是按二進(jìn)位分配的。

分享到:
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見(jiàn)留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營(yíng)業(yè)執(zhí)照
张掖市| 河津市| 定襄县| 平邑县| 宣恩县| 霞浦县| 五寨县| 扎囊县| 德钦县| 肇源县| 天等县| 新民市| 鲁甸县| 高要市| 德钦县| 东海县| 滁州市| 秭归县| 自治县| 米脂县| 永和县| 武汉市| 南宁市| 玉林市| 湘乡市| 廉江市| 唐河县| 灌云县| 公主岭市| 鸡东县| 关岭| 香格里拉县| 红桥区| 英德市| 兖州市| 哈尔滨市| 贵南县| 新余市| 武隆县| 吉林省| 垦利县|