有时,,发现敲打码时真的好麻烦,短的代码还好说,就像可爱的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类型就便于移植。