当前位置:嗨网首页>书籍在线阅读

03-建立结构声明

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.2 建立结构声明

结构声明(structure declaration)描述了一个结构的组织布局。声明类似下面这样:

struct book {
     char title[MAXTITL];
     char author[MAXAUTL];
     float value;
};

该声明描述了一个由两个字符数组和一个 float 类型变量组成的结构。该声明并未创建实际的数据对象,只描述了该对象由什么组成。〔有时,我们把结构声明称为模板,因为它勾勒出结构是如何存储数据的。如果读者知道C++的模板,此模板非彼模板,C++中的模板更为强大。〕我们来分析一些细节。首先是关键字 struct ,它表明跟在其后的是一个结构,后面是一个可选的标记(该例中是 book ),稍后程序中可以使用该标记引用该结构。所以,我们在后面的程序中可以这样声明:

struct book library;

这把 library 声明为一个使用 book 结构布局的结构变量。

在结构声明中,用一对花括号括起来的是结构成员列表。每个成员都用自己的声明来描述。例如, title 部分是一个内含 MAXTITL 个元素的 char 类型数组。成员可以是任意一种C的数据类型,甚至可以是其他结构!右花括号后面的分号是声明所必需的,表示结构布局定义结束。可以把这个声明放在所有函数的外部(如本例所示),也可以放在一个函数定义的内部。如果把结构声明置于一个函数的内部,它的标记就只限于该函数内部使用。如果把结构声明置于函数的外部,那么该声明之后的所有函数都能使用它的标记。例如,在程序的另一个函数中,可以这样声明:

struct book dickens;

这样,该函数便创建了一个结构变量 dickens ,该变量的结构布局是 book

结构的标记名是可选的。但是以程序示例中的方式建立结构时(在一处定义结构布局,在另一处定义实际的结构变量),必须使用标记。我们学完如何定义结构变量后,再来看这一点。