我正在进行一个C++项目,我使用的库之一有以下代码:
typedef void (*thread_startfunc_t) (void *);
有人能否解释一下这是在做什么?谢谢。
它将thread_startfunc_t
定义为类型"指向一个函数的指针,该函数接受一个参数,类型为void *
,并返回void
"的同义词。
请注意,_t
后缀实际上是由POSIX保留的,因此我认为在这方面这是糟糕的代码,但对于指向函数类型使用typedef
总是一个好主意。这是一种非常常见的做法。
这是一个函数指针的typedef。也就是说,thread_startfunc_t
变量是一个指向没有返回值(void
)且带有void*
参数的函数的指针。它使得在需要指向符合上述描述的函数的指针的地方更容易编写thread_startfunc_t
,而不是在各个地方使用笨拙、令人困惑的语法。
例如:
void StartThread(thread_startfunc_t StartFunction); // Not actually a function, just an example.
foo
的StartThread方法,我该怎么做? - NosrettapStartThread(&foo)
(或者如果你喜欢的话,只写StartThread(foo)
)。 - ruakh
*
,它将创建函数类型的同义词。哦,我不认为C++标准保留了“_t”,我认为它是由POSIX保留的。 - Keith Thompsontypedef void (thread_startfunc_t) (void *); thread_startfunc_t *func = whatever;
- Keith Thompson