簡體   English   中英

尋找理解typedef

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM