Синтаксис C с несколькими указателями и скобками - PullRequest
0 голосов
/ 27 февраля 2019

Может ли кто-нибудь объяснить мне следующий синтаксис:

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

(...)

aType myVar;

Я могу получить доступ к myVar.jac, но что такое "состояние" и "J" и как получить к ним доступ?

Спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...