通用写法 给结构体写别名 关键字typedef
// 首先定义一个结构体
struct Worker_ {
char name[10];
int age;
char sex;
};
// 给结构体定义一个别名
typedef struct Worder_ Worder_;
// 定义一个结构体指针别名
typedef struct Worder_ * Worder;
// 使用
int main () {
// 首先没有定义别名时是这样创建的
struct Worker_ *worker = malloc(sizeof(struct Worker_));
// 因为VS的写法不需要struct;
// 所以使用别名玩法
Worker_ *worker2 = malloc(sizeof(Worker_));
Worker worker1 = malloc(sizeof(Worker));
return 0;
}
别名的高级用法 看很多系统源码都是这样写的
// 系统写法
typedef struct {
int version;
} DAO;
int main () {
DAO *dao = malloc(sizeof(DAO));
}
枚举也是类式写法
enum CType {
TEXT = 10,
TEXT_IMAGE,
IMAGE
};
typedef enum CType CType;
typedef enum {
TEXT1 = 10,
TEXT_IMAGE1,
IMAGE1
} C_TYPE;
int mainT10() {
enum CType ctype = TEXT;
//VS写法 CType ctype = TEXT;
// 兼容写法加一个别名 typedef enum CType CType;
CType cType2 = TEXT;
}