typedef struct
{
int (*setNumFun)(void *a, int b, int *c);
}strFun;
int setNum(*p)
{
内容;
}
int main()
{
strFun *temp;
temp->setNumFun = setNum;
}
请问temp->setNumFun = setNum;这句的具体含义是什么呢?谢谢
其实这么写是错的,因为
temp->setnumFun = setnum;
将setnum函数传给函数指针类型setnumFun
其实这么写是错的,因为
int (*setnumFun)(void *a, int b, int *c);
返回值是int,参数是void *, int, int *
你需要把setnum修改下
int setnum(void *p, int b, int * c)
{
...
}
这样才行。
setNumFun是结构体strFun的成员变量,其类型是函数指针,指向具有void、int、int参数返回值为int的函数。
这句话的含义是把函数setNum的首地址赋给结构体变量temp的成员变量setNumFun,也就是setNumFun指向函数setNum。
要注意的是setNum函数要和setNumFun指向的函数具有相同的函数原型。