2.1.3 构造数据类型(2)
或:
- worker worker1,worker2; //错误,没有struct关键字,系统不认为worker是结构体类型
为了使用方便,通常用一个符号常量代表一个结构体类型。即在程序开头加上下列语句:
- #define WORKER struct worker
这样在程序中,WORKER与struct worker完全等效。
例如:
- WORKER
- { long number;
- char name[20];
- char sex;
- int age;
- float salary;
- char address[80];
- char phone[20];
- };
- WORKER worker1,worker2;
此时,可以直接用WORKER定义worker1、worker2两个变量,而不必再写关键字struct。如果程序规模比较大,通常将对结构体类型的定义集中写入到一个头文件(以.h为后缀)中。哪个源文件需用到此结构体类型则可用#include命令将该文件包含到本文件中。这样做便于程序的修改和使用。
(2) 在定义类型的同时定义变量
这种形式定义的一般形式为:
- struct 结构体名
- {
- 成员表列;
- }变量名;
例如:
- struct worker
- {
- long number;
- char name[20];
- char sex;
- int age;
- float salary;
- char address[80];
- char phone[20];
- } worker1,worker2;
此例与前例作用相同,都定义了两个变量worker1、worker2,都是结构体类型struct worker。
(3) 直接定义结构类型变量
其一般形式为:
- struct //没有结构体名
- {
- 成员表列;
- }变量名;
例如:
- struct
- {
- long number;
- char name[20];
- char sex;
- int age;
- float salary;
- char address[80];
- char phone[20];
- } worker1,worker2;
一个结构体变量占用内存的实际大小,可以利用sizeof运算求出。其运算表达式为:
- sizeof(运算量) //求出给定的运算量占用内存空间的字节数
其中运算量可以是变量、数组或结构体变量,也可以是数据类型的名称。
例如:
- sizeof(struct worker)
- sizeof(worker1)