【发布时间】:2013-09-15 01:17:49
【问题描述】:
代码如下:
// 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”这个词……那你明白了吗?如果不是,那么您的问题不在于 typedef。如果是这样,那么您理解 typedef 应该没有任何问题。
-
@JimBalter:我还记得我第一次看到
typedef作为函数指针时是多么的恼火。 -
@alk 我无法理解。就像我说的,如果你已经理解了函数指针的声明——这是令人讨厌的部分,因为 C 如何将声明的名称隐藏在一堆语法中——那么理解 typedef 很简单,因为它只是将名称声明为类型的同义词,而不是类型的变量。
标签: c function pointers typedef