有人可以向我解释以下语法:
typedef struct {
int (*jac) (void *state, float * J);
} aType;
(...)
aType myVar;
我可以访问myVar.jac,但是什么是“state”和“J”以及如何访问它们?
谢谢!
state
和J
不是你的结构的字段。它们是函数指针jac
的参数,它是结构的成员。这指向一个函数,它将void *
和float *
作为参数并返回int
。您可以像这样使用它,例如:
int myfunc(void *state, float *J)
{
...
}
...
a_type myVar;
myVar.jac = myfunc;
char buffer[100];
float f;
...
myVar.jac(buffer, &f);