我正在开发一个C ++项目,其中一个我正在使用的库有以下几行:
typedef void (*thread_startfunc_t) (void *);
有人可以解释一下这是做什么的。感谢
答案 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.