用 typedef 定义类型
typedef是C/C++中一个很关键的关键字,它的作用是用来给类型起别名。因为在遇上不同数据类型,尤其是复杂类型。
typedef关键字常用来给一下几种类型起别名:
- 基本数据类型
- 结构体
- 数组
- 枚举类型
- 指针
基本数据类型
使用typedef给基本数据类型起别名很简单:
//typedef关键字 数据类型 别名 typedef int Myint; typedef double Mydouble;
起了别名以后,别名就相当于原类型名的同义词,能使用原类型的地方就可以使用别名。
int num和Myint num等价。
结构体
和基本数据类型类似,将别名放在结构体之后。
struct Person{ string name; int age; }; //typedef关键字 结构体 别名 typedef struct Person P;
数组
给数组起别名时,typedef的用法和单个元素有些区别,别名被挤在数组元素类型和数组元素个数之间。
//typedef关键字 数组元素类型 别名[数组元素个数] typedef int C[10]; C t; // t的类型是int[10],也就是包含10个int类型的数组
枚举类型
和结构体类型类似。
enum Color{Red,Green,Blue}; //typedef关键字 枚举类型 别名 typedef Color primaryColor; primaryColor G = Red
指针
对指针起别名需要注意的一点就是,如果要对别名加const关键字,必须要知道,我们声明的是一个常量指针,而不能将其按照字面上,理解为指向常量的指针。
//typedef关键字 指针 别名 typedef const char* String; String s1 = "name";