gpt4 book ai didi

c++ - 寻求理解 typedef

转载 作者:行者123 更新时间:2023-11-30 01:48:36 25 4
gpt4 key购买 nike

我有一个程序,我在其中动态加载一个 dll 并使用“工厂”函数来获取类实例。 (我实际上是从我在网上某处读到的一篇帖子中摘录的,只是盲目地使用了它。)为此,我有如下代码片段:

typedef IHermes* (*pHermesFactory)();

pHermesFactory pHermes = (pHermesFactory)GetProcAddress(hInstance, "HermesFactory");

我的问题是 - 最后一行在 typedef“替换”之后变成了什么?当我试图用手弄清楚时,我想到了:

IHermes* (*pHermes)() = (IHermes* (*GetProcAddress(hInstance, "HermesFactory"))();

有谁知道这是对的吗?我真的需要知道,但我想更好地理解 typedef。

最佳答案

如果没有 typedef,您需要将 pointer to function 指定为变量的类型和强制转换,所以您最终会得到这样的结果(我已经分成一个定义和分配,希望能稍微提高清晰度)。

IHermes* (*pHermes)();

pHermes = (IHermes*(*)())GetProcAddress(hInstance, "HermesFactory");

虽然这些可以合并成一个可怕的困惑:

IHermes* (*pHermes)() = (IHermes*(*)())GetProcAddress(hInstance, "HermesFactory");

关于c++ - 寻求理解 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com