一、引言
1.1 定义
在C语言中,可以使用关键字typedef为类型取一个新名字
- 代码实现:
#include <stdio.h> #include <string.h> typedef struct test1 { char name[30]; int age; }People; void main(){ People p; strcpy(p.name,"xiaomage"); p.age = 20; printf("姓名:%s\n年龄:%d",p.name,p.age); }
- 运行结果:
姓名:xiaomage 年龄:20
二、typedef与#define的区别
- typedef仅限于为类型定义别名,#define不仅可以为类型定义别名,还可以为数值定义别名
- #define可以使用其他类型说明符对宏类型进行扩展,typedef不可以
- 在进行连续定义几个变量时,typedef可以保证变量类型相等,#define不可以
- 代码实现:
#include <stdio.h> #include <string.h> #define TRUE 1 //#define可以直接给数值取别名 #define INT int unsigned INT k; //对INT进行扩展 INT i = 0; #define P int * P p1,p2; //p1,p2类型不同,宏展开后为:int *p1,p2 typedef int * P_1; P_1 p3,p4; //p3,p4类型相同 typedef int INT_1; //注意格式,和#define正好相反 INT_1 j = 2; // typedef 0 FALSE //typedef不可以给数值取别名 void main(){ printf("i=%d\n",i); printf("j=%d\n",j); printf("TURE=%d\n",TRUE); }
- 运行结果:
i=0 j=2 TURE=1