This question already has answers here:
Closed 6 years ago.
Typedef function pointer?
(6个答案)
typedef a function pointer type
(2个答案)
代码如下:
// Global Definitions/Declarations:

typedef void * LOGHANDLE;

typedef LOGHANDLE (STD_CALL *LogOpen_T)
       (unsigned char *,
        unsigned char *,
        unsigned long,
        unsigned long *);

LogOpen_T LogOpen;

// Inside some function:
    ...
    LogOpen = (LogOpen_T)ImportSymbol(moduleHandle, "LogOpen" );
    if (LogOpen == NULL)
    {
         err = -2;
    }
    ...

我无法理解这里是如何使用typedef的。请解释一下。

最佳答案

typedef本身为指向函数的指针定义了一个类型别名,该函数如下所示:

void * STD_CALL f(unsigned char *, unsigned char *, unsigned long, unsigned long *);

变量LogOpen是指向函数的实际指针。稍后ImportSymbol的结果被转换为指向a函数的指针。

关于c - 请说明typedef的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18734012/

10-15 06:07