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

问题描述 投票:2回答:1

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

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

(...)

aType myVar;

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

谢谢!

c pointers syntax
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.