typedef一个结构体指针变量再去定义一个变量什么意思?

2020-10-13 教育 105阅读
PDRIVER_EXTENSION DriverExtension;等价于
struct _PDRIVER_EXTENSION DriverExtension;
你会发现
PDRIVER_EXTENSION等价于struct _PDRIVER_EXTENSION
为什么?注意前面的typedef的用法,这时的*PDRIVER_EXTENSION并不是结构体指针变量,而是一个结构体指针类型,DriverExtension才是结构体指针变量
他的定义遵循 <类型> <变量>
typedef的用法,举个简单例子
typedef int AAA
相当于AAA = int,也就是说AAA为int 类型,int a;等价于AAA a;
AAA是int类型,a是int类型变量
那么typedef的意思就是重新定义变量类型的名字
回答补充:
额。。。你还是没理解,因为PDRIVER_EXTENSION是结构体<指针>类型,由他定义的变量为结构体<指针>变量,根结构体变量是两个概念
那DriverExtension->DriverObject=函数地址,这怎么理解?
你没给函数代码,还有部分指针操作代码,但根据你的表达方式可看出,此目标函数的类型为结构体函数指针
又因为指针只能操作地址,结构体成员DriverObject保存了目标函数的地址,相当于DriverObject=函数地址,而结构体指针变量DriverExtension调用结构体成员DriverObject,相当于DriverExtension->DriverObject
也就是说DriverExtension调用了DriverObject保存了函数地址
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com