1,typedef 典型用法
我要声明函数指针,并且会多次用到这种类型的函数指针
void (*p)(int, char) //函数指针变量p,一处
void (*p1)(int, char) //函数指针变量p1,又是一处
我不想上面这么复杂
typedef void (*p)(int, char) //把p声明成了类型,指针类型(函数指针)
拿到这个类型就简便多了,这么用
p pa;
p pb;
//------------------------------------
另一种用法,下面的定义其实就是总结
typedef 已知类型 新类型;
typedef struct student
{
uint8_t age = 0;
bool sex;
}*pStudent;
声明了一种类型,即 struct 类型名,同时根据已知类型声明了新类型,即 student* pStudent;
2,#define 典型用法
//#define MAX 35
意为让编译器将后文中的所有MAX替换成35
3,using 典型用法
using 新名字 = 已知名字;
using UString = std::string;
和#typeddef 一样,类型别名,也用在为长名字的命名空间简化名字
以后移步简书