C++ typedef用法的理解 :
typedef的作用是将 变量名 (声明变量这件事情的结果)提升为 类型
变量名->类型
typedef作用于声明变量:先声明变量,再使用typedef作用!!!
int a; //声明一个int类型的变量。
变量名:a
变量a的类型(属性):int
类型+变量名=声明某类型的变量
typedef int myint;
将变量名myint提升为类型int
第一步,声明变量
不看typedef,只看int myint
int myint;//声明变量,得到类型为int 的变量名myint
变量名:myint
变量名类型(属性):int
第二步,typedef作用
将typedef作用于声明变量的结果typedef+(int myint)
typedef的作用:将声明变量得到的结果(变量名)提升为类型
经过typedef后:
变量myint->类型
此时变量myint从一个变量的名字提升为了一个类型的名字,那么到底是什么类型呢?和声明变量时myint的类型(属性)相同,int型。也就是说myint现在是一种和int类型等价的类型。
***typedef void (*pfunc)(int)
拆解 :2步
第一步,声明变量
不看typedef,只看后面声明变量void (*pfunc)(int);
声明一个指针,指针的类型是函数指针,指向一个返回值为void类型,参数为int的函数
变量名:指针pfunc
变量名类型(属性):函数void()(int)
第二步,typedef作用
将typedef作用于void (*pfunc)(int)
typedef的作用:将声明变量得到的结果(变量名)提升为类型
经过typedef后:
变量pfunc------->类型
此时变量pfunc从一个变量的名字提升为了一个类型的名字,那么到底是什么类型呢?和声明变量时pfunc的类型(属性)相同,void (星)(int)这种类型的指针。也就是说pfunc现在是一种和函数指针类型等价的类型。
typedef int a[10]
拆解:2步
第一步,声明变量
不看typedef,只看变量声明int a[10];
声明一个int类型的数组,数组的大小为10,数组名为a
变量名:a
变量名类型(属性):int[10]
第二步,typedef作用
将typedef作用于int a[10];
typedef的作用:将声明变量得到的结果(变量名)提升为类型
经过typedef后
变量a------->类型
此时变量a从一个变量的名字提升为了一个类型的名字,那么到底是什么类型呢?和声明变量时a的类型(属性)相同,int[10]数组。也就是说a现在是一种和int[10]类型等价的类型。
参考:https://blog.csdn.net/qq_41191968/article/details/114437075