首先,定义一个结构的一般形式为:
struct结构名
{
//成员表列
帆晌 };
成员表态枝锋由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。
然后,当结构定搭野义完成后,即创建了一种数据类型,可以像int、float等内置类型一样使用,以上面定义的stu结构体来和int类型对比着看。
int a;//定义一个int类型的变量a
stu a; //定义一个stu类型的变量a
int *p; //定义一个int类型的指针p
stu *p; //定义一个stu类型的指针p
int a[10];//定义一个int类型的数组a,它有10个元素,每个元素是int类型
stu a[10];//定义一个stu类型的数组a,它有10个元素,每个元素是stu类型。
typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性,例如typedef int am;这里am形式就代表整埋陪型int,同样在你的例子中:
typedef+
struct bmp_picture_typ
{bitmapfile file;
bitmapinfo info;
}+bmp_picture
是将结构体类型bmp_picture_typ用bmp_picture形式来代握州替,来隐藏笨拙的语法构造,之后是“,*bmp_picture_ptr”,注意前面有个逗号,说明与bmp_picture同等地位,不过多了个*,说明bmp_picture_ptr是表示bmp_picture_typ指针类型的段液蔽形式,就像typedef int* bm,即用bm形式表示int*,而这里的形式只是将两者合并为typedef int am,*bm;而已
typedef struct bmp_picture_typ
{
bitmapfile file;
bitmapinfo info;
}
bmp_picture,*bmp_picture_ptr;
等价于:
typedef struct bmp_picture_typ
{
bitmapfile file;
bitmapinfo info;
}bmp_picture;
typedef struct bmp_picture_typ
{
bitmapfile file;
bitmapinfo info;
}*bmp_picture_ptr;
这只是声凳返明了一个结构体复枣运饥合类型悄哪。