我已经做了一些研究,但是我只是无法理解atypedef
是什么。
我发现了这个例子:
typedef HINSTANCE(*fpLoadLibrary)(char*)
有人可以解释typedef
此处的操作吗,此外在括号中包含值意味着什么?
如果使用using声明,则更清楚:
using fpLoadLibrary = HINSTANCE(*)(char*);
这是C ++ 11的替代,以typedef
秒(实际上,标准的表示, -甲typedef的名称也可以通过一个别名声明来引入)。
如您现在所见,fpLoadLibrary
是指向函数type的类型指针的别名HINSTANCE(char*)
。
括号中的类型仅是函数类型的参数的预期类型。
该typedef
程式码中的手段一模一样,就算(我认为)是难以阅读。
现在假设您有一个像这样的函数:
HINSTANCE f(char*) {}
您可以使用上面介绍的类型,如下所示:
fpLoadLibrary fp = &f;
然后,您还f
可以通过以下方式调用fp
:
fp(my_char_ptr);
例如,当您要存储一个函数指针并从一组具有相同签名的可用函数中选择正确的函数时,这可能会很有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句