一、聯(lián)合的定義
定義一個(gè)聯(lián)合類型的一般形式為:
union 聯(lián)合名
{
成員表
};
成員表中含有若干成員,成員的一般形式為: 類型說明符 成員名 成員名的命名應(yīng)符合標(biāo)識符的規(guī)定。
例如:
union perdata
{
int class;
char office[10];
};
定義了一個(gè)名為perdata的聯(lián)合類型,它含有兩個(gè)成員,一個(gè)為整型,成員名為class;另一個(gè)為字符數(shù)組,數(shù)組名為office。聯(lián)合定義之后,即可進(jìn)行聯(lián)合變量說明,被說明為perdata類型的變量,可以存放整型量class或存放字符數(shù)組office。
二、聯(lián)合變量的說明
聯(lián)合變量的說明和結(jié)構(gòu)變量的說明方式相同, 也有三種形式。即先定義,再說明;定義同時(shí)說明和直接說明。以perdata類型為例,說明如下:
union perdata
{
int class;
char officae[10];
};
union perdata a,b; /*說明a,b為perdata類型*/
或者可同時(shí)說明為:
union perdata
{ int class;
char office[10]; }a,b;或直接說明為: union
{ int class;
char office[10]; }a,b
經(jīng)說明后的a,b變量均為perdata類型。 它們的內(nèi)存分配示意圖如圖7—8所示。a,b變量的長度應(yīng)等于 perdata 的成員中最長的長度, 即等于
office數(shù)組的長度,共10個(gè)字節(jié)。從圖中可見,a,b變量如賦予整型值時(shí),只使用了2個(gè)字節(jié),而賦予字符數(shù)組時(shí),可用10個(gè)字節(jié)。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |