有时,,发现敲打码时真的好麻烦,短的代码还好说,就像可爱的int,但是遇到像long long有时还会来一个unsigned long long 型,写的人晕头转向,那么有什么好的办法把它们都变可爱吗?那一定是我们亲爱的——typedef,这位魔法师来帮助我们。
typedef 作用:给已有的数据类型定义新类型名。
目的:1.简单。
2.名称和处理问题相关。
typedef unsigned long long uint64;
typedef int * pint;
typedef unsigned int time_t;
uint64 a = 10;//简短的类型
uint64 b = 20;
time_t t1;//和时间相关的问题
t1 = time(NULL);//获取时间值
我们在输入类型时也会觉得太长太麻烦,typedef 也可以帮我们将复杂的类型变为简单的类型
命名一个简单的类型名代替复杂的类型表示方法
(1)命名一个新的类型名代表结构体类型:
typedef struct Date
{
int month;
int day;
int year;
}Date;
Date birthday;
Date *p;
(2)命名一个新的类型名表数组类型
typedef int Arr[10];
Arr a;
(3)命名一个新的类型名代表一个指针类型
typedef char *String;
String p,s[10];
(4)命名一个新的类型名代表指向函数的指针类型
typedef int (*Pointer)();
Pointer p1,p2;
归纳起来,声明一个新的类型名的方法是
如果没有typedef,那么
int Arr[10];//一个10个长度的整型数组变量
加上typedef int Arr[10];//Arr提升为整型数组数据类型
用来定义变量:Arr a;
相当于定义了:Arr a[10];
说明
(1)用typedef只是对已经存在的类型指定一个新的类型名,并没有创作新的类型
(2)用typedef声明数组类型、指针类型、结构体类型、共用体类型、枚举类型等,使得编程更加方便。
(3)typedef与#define表面上有相似之处
(4)使用typedef名称有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef类型就便于移植。