簡體   English   中英

C / C ++將void *轉換為int(*())(int,...);

[英]C/C++ casting void* to int ( * () ) (int,…);

如何將void*int ( * () ) (int,...)

void*來自dlsym 此代碼未編譯:

typedef  int ( *PSYS () ) (int,...);
PSYS getf =  (PSYS) dlsym(lib, "function" );

如果符號是函數指針,則typedef可能是錯誤的。 應該:

typedef int (*PSYS)(int, ...);

PSYS是函數的類型,而不是函數的指針。 你要

typedef  int ( *PSYS () ) (int,...);
PSYS* getf =  (PSYS*) dlsym(lib, "function" );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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