[英]In search of understanding a typedef
我有一個程序,在其中我可以動態加載dll並使用“工廠”函數來獲取類實例。 (實際上,這是從我在網上某處閱讀的帖子中刪除的,只是盲目地使用它。)為此,我有一個如下的代碼段:
typedef IHermes* (*pHermesFactory)();
pHermesFactory pHermes = (pHermesFactory)GetProcAddress(hInstance, "HermesFactory");
我的問題是-在typedef“替換”之后,最后一行會變成什么? 當我試圖用手找出來時,我想到了:
IHermes* (*pHermes)() = (IHermes* (*GetProcAddress(hInstance, "HermesFactory"))();
有誰知道這是對的嗎? 我真的不需要知道,但我想了解的typedef是一個好一點。
如果沒有typedef,則需要指定pointer to function
同時用作變量類型和強制類型轉換的pointer to function
,因此最終會得到這樣的結果(我將其分為定義和賦值,以期稍有改進明晰)。
IHermes* (*pHermes)();
pHermes = (IHermes*(*)())GetProcAddress(hInstance, "HermesFactory");
那些可以組合成一個可怕的爛攤子:
IHermes* (*pHermes)() = (IHermes*(*)())GetProcAddress(hInstance, "HermesFactory");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.