有人可以向我解释以下语法:
typedef struct {
int (*jac) (void *state, float * J);
} aType;
(...)
aType myVar;
我可以访问myVar.jac,但是什么是“状态”和“ J”以及如何访问它们?
谢谢!
答案 0 :(得分:3)
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);