C/C++ typedef的理解 typedef void (*pfunc)(int);

C/C++ typedef的理解 typedef void (*pfunc)(int);

初学时:
typedef int XXX,给类型int取一个别名xxx,嗯我懂了,EZ。

一段时间过后:
typedef void (*pfunc)(int);
???将void取别名(*pfunc)(int)?不对啊,网上搜一搜,原来是函数指针啊,理解不了,先记住吧。

一段时间后:
typedef int a[10];
???又记?

关于typedef的解释

个人见解:

typedef的作用是将 变量名 (声明变量这件事情的结果)提升为 类型
变量名----------->类型
typedef作用于声明变量:先声明变量,再使用typedef作用!!!

先看声明变量时:
int a; //声明一个int类型的变量。
变量名:a
变量a的类型(属性):int

类型+变量名=声明某类型的变量

typedef int myint;拆解:2步

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]类型等价的类型。

上一篇:5.5号python课堂笔记


下一篇:#全网寒假最火特辑# 【第一章】 C语言之牛客网刷题笔记 【点进来保证让知识充实你一整个寒假】