1. 为类型取一个新的名字
1.1 代码
void test_19_01(){
typedef int int_t;
int_t a = 4;
printf("a=%d\n",a);
printf("sizeof(a)=%d\n",sizeof(a));
}
1.2 执行结果
2. 为用户自定义的数据类型取一个别名
2.1 代码
void test_19_02(){
typedef struct student{
char name[10];
int age;
}STU;//取student结构体别名为:STU
STU stu1={"lei",20};
printf("stu1.nmae=%s\n",stu1.name);
printf("stu1.age=%d\n",stu1.age);
}
2.2 执行结果
3. 掩饰复合类型
3.1代码
/* 3.掩饰复合类型 */
void test_19_03(){
typedef char Line[81];//定义有 81 个字符元素的数组
Line line1;
Line line2;
printf("sizeof(line1)=%d\n",sizeof(line1));
printf("sizeof(line2)=%d\n",sizeof(line2));
}
3.2 执行结果
4. typedef函数指针用法 (略)
5. typedef vs #define
- typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
- typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
参考:c学习-28