14.2 建立结构声明

结构声明(structure declaration)是描述结构如何组合的主要方法。声明就像下面这样:

阅读 ‧ 电子书库

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

该声明描述了一个由两个字符数组和一个float变量组成的结构。它并没有创建一个实际的数据对象,而是描述了组成这类对象的元素(有时候,我们也把结构声明叫做模板,因为它勾勒出数据该如何存储。如果您已经听过C++中的模板,那只是这个词的不同用法)。我们来看看细节。首先使用关键字struct,它表示接下来是一个结构。后面是一个可选的标记(单词book),它是用来引用该结构的快速标记。因此,以后我们就可以这样声明:

阅读 ‧ 电子书库

它把library声明为一个使用book结构设计的结构变量。

在结构声明中,接下来是用一对花括号括起来的结构成员列表。每个成员变量都用它自己的声明来描述,用一个分号来结束描述。例如,title是一个拥有MAXTITL个元素的char数组。每个成员可以是任何一种C的数据类型,甚至可以是其他结构!

结束花括号后的分号表示结构设计定义的结束。可以把这个声明放在任何函数的外面(就像我们已经做的那样),也可以放在一个函数定义内部。如果这个结构声明置于一个函数内部,它的标记只能在该函数内部使用。如果是外部声明,它可以被本文件中该声明之后的所有函数使用。例如,若再有一个函数,可以这样定义:

阅读 ‧ 电子书库

这样,这个函数中将含有一个book结构的变量dickens。

标记名是可选的。但是在用我们所使用的那种方式建立结构(在一个地方定义结构设计,而在其他地方定义实际的结构变量)时,必须使用标记。我们学习完结构变量的定义之后,再回头来看看这一点。