具有多个指针和括号的C语法

时间:2019-02-26 22:02:55

标签: c pointers syntax

有人可以向我解释以下语法:

typedef struct {
    int (*jac) (void *state, float * J);
} aType;

(...)

aType myVar;

我可以访问myVar.jac,但是什么是“状态”和“ J”以及如何访问它们?

谢谢!

1 个答案:

答案 0 :(得分:3)

stateJ不是结构的字段。它们是函数指针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);