struct和typedef struct
首先 以下内容均是在C中(在C和C++中有所不同)
先写基本概念:
结构体:
定义一个结构体的一般形式为:
struct 结构名
{
成员表列
};
一个简单例子:
struct human
{
int age;
char sex;
int weight;
}man;
{
int age;
char sex;
int weight;
}man;
这个例子声明了一个结构human,human是一个新的类型。
实例了一个对象human 类型变量man,它包含有三个数据成员。
typedef:typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。
例如:
typedef long byte_4;
给已知数据类型long起个新名字,叫byte_4。
在需要用到long的地方,你都可以用byte_4来代替。typedef与结构结合使用:
typedef struct MyStruct
{
int a;
char b;
long c;
}Edit; //于是在声明变量的时候就可以:Edit edit;(如果没有typedef就必须用struct MyStruct edit;来声明)
这里的Edit实际上就是structMyStruct的别名。Edit==structMyStruct
这语句实际上完成两个操作:
1) 定义一个新的结构体类型
struct MyStruct
{
int a;
char b;
long c;
};
2) typedef为这个新的结构体起了一个名字
typedef struct MyStruct Edit;