C++学习笔记——typedef定义函数指针用法
之前在学习C++链接动态库时,发现在只使用dll文件(无lib文件)链接动态库时,导出动态库中方法接口需要用到这样的代码:
typedef int (*pAddr)(int a,int b);
一开始没能理解,后来发现是要和下面Loadlibrary()函数后面的导出动态库方法接口位置的代码一起产生作用:
pAddr Func=(pAddr)GetProcAddress(_module,"FuncName");
所以经过查询资料,上面的typedef代码含义为:自定义类型,定义一个函数指针,前面的 int 代表函数返回值类型,(*pAddr)代表函数指针类型,后面的(int a , int b)代表函数参数类型。
意义为定义了一个返回值为int,参数为(int ,int)的自定义类型函数指针,用pAddr作为标识符,下面的pAddr Func含义为定义了一个pAddr类型的变量Func,一般由动态库中_module中的“FuncName”函数为Func作初始化,代表Func函数指针指向动态库中的FuncName函数,以此来导出Fun从Name函数的接口。