这是个函数指针 前面的void为返回值类型 后面的void*为参数类型
可是这个一整个就是一个函数的参数啊
难道的函数指针可以使一个函数的参数吗?
函数指针是可以作为某个函数的参数的,你百度下就可以查阅到相关的文章
类似这种
typedef void (*FunType)(int ); //. 定义一个函数指针类型FunType,
void CallMyFun(FunType fp,int x);
我感觉这个函数指针的返回类型应该是void*,最后面括号的里的void*是参数,中间那个(*)代表的是指向函数的指针,那函数名怎么没有的?
int pthread_create(pthread_t*,const pthread_att*,void*(*)(void*),void*):整个就是这样的,帮忙看下哦
(1) 指向函数的指针变量的一般定义形式为:
数据类型 (*指针变量名)(函数参数列表)
函数名是可以缺省的 作为参数传递的时候会去调和 void*(*)(void*)这个类型相匹配的函数的
也就是这个函数指针的返回类型是void* ,参数也是void*?
是的 作为参数调用这个函数的时候 返回类型是void* 就相当于传了一个参数类型为void*
当然这个函数指针的参数也是void*的
函数指针,指针函数,指向函数的指针,指针类型的函数的具体区别是是什么呢?
简单的说:
1.函数指针 指向函数的指针 这两个是一个意思 是表示一个指针, 这个指针他指向的是一个函数
2.而指针函数 是表示一个函数 他的返回值类型为指针
具体的区别你可以百度一下 有好多文章的
那么int pthread_create(pthread_t*,const pthread_att*,void*(*)(void*),void*):中 参数void*(*)(void*),是一个函数指针,如果单独开说void*(*)(void*);就是一个指针函数对吗?作为函数时候void*(*)(void*),中的函数名可不可以省略的?
作为参数的时候是可以省去函数名的,当时在声明的时候不能省去
联系客服