这种typedef是什么意思?

时间:2012-02-18 01:56:07

标签: c++

我正在开发一个C ++项目,其中一个我正在使用的库有以下几行:

typedef void (*thread_startfunc_t) (void *);

有人可以解释一下这是做什么的。感谢

2 个答案:

答案 0 :(得分:7)

它将thread_startfunc_t定义为类型“指向函数的指针的同义词,该函数采用单个参数,类型为void *,并返回void”。

请注意,_t后缀实际上是由POSIX保留的,所以我认为在这方面这是错误的代码,但使用typedef指针到函数类型总是一个好的理念。这是一种非常普遍的做法。

答案 1 :(得分:1)

它是函数指针的typedef。也就是说,thread_startfunc_t变量是指向没有返回(void)且取void*的函数的函数指针。它使thread_startfunc_t更容易在想要指向符合上述描述的函数的位置编写,而不是在整个地方使用笨拙,令人困惑的语法。

IE:

void StartThread(thread_startfunc_t StartFunction); // Not actually a function, just an example.