受教了
一听就懂,一看就会,一做就错……
thread应该也是一个函数指针,它指向了(* func)(void *) 。前面的(void *)是进行强制转换,虽然说任何类型的指针都可以转换成(void *)型的,但是强制转换可以避免一般的类型检查。
void *(* func)(void *) //参数类型是(void *)用于接受任何类型的参数;
(void *) thread 是void *(* func)(void *) 的一个应用实例,怎么对应呢?
---------------------------------------------
这个函数指针作为参数就是这样使用的。thread无须显示参数及其参数类型。感觉这个道理和函数指针的初始化道理有点相似,本质上我不清楚到底是否一样,但是形式就差不多。比如初始化下面的函数指针:
//----------Example------------
int *Funtion(int x)
{
//...
}
int (*P_funtion)(int ) = Funtion; //初始化P_funtion函数,直接把函数Funtion指向P_funtion 就OK了;