这是非常简单的,我正在尝试去做,而我只是很难弄清楚正确的语法。如何在C中的struct中使用函数指针?
我希望我的结构看起来像这样:
struct myStruct
{
functionPointer myPointer;
}
然后,我有另一项功能,在其他地方是通过一个函数的函数,并返回我的结构的一个实例。以下是它的作用:
struct myStruct myFunction(int (*foo) (void *))
{
myStruct c;
c.myPointer = foo;
return c;
}
我怎样才能使这个实际工作?什么是正确的语法:
- 在我的结构声明一个函数指针(显然
functionPointer myPointer;
是不正确的) - 分配函数的地址给函数指针(很肯定
c.myPointer = foo
是不正确的)?
如果你返回一个myStruct *,你应该分配(例如,使用malloc)并返回malloced值。如果你返回一个myStruct,你应该像这样声明你的函数。 (现在,你声明该函数返回一个指针,但你试图返回一个结构体。) – 2012-01-14 02:14:01
[C中的函数指针]的可能重复(http://stackoverflow.com/questions/1278841/)。另请参见[函数指针作为C结构的成员](http://stackoverflow.com/questions/1350376/),[结构与指向函数的指针](http://stackoverflow.com/questions/2939003/) ,[typedef是你的朋友](http://stackoverflow.com/a/8028634/90527)。 – outis 2012-01-14 02:19:14