Более или менее:
struct myStruct
{
struct myStruct (*myPointer)(int (*foo)(void *));
};
typedef struct myStruct myStruct;
Значение c.myPointer
должно быть в порядке, но вам нужно вернуть копию структуры, а не указатель на исчезнувшую локальную переменную c
.
struct myStruct
{
struct myStruct (*myPointer)(int (*foo)(void *));
};
typedef struct myStruct myStruct;
struct myStruct myFunction(int (*foo) (void *))
{
myStruct c;
c.myPointer = foo;
return c;
}
Это компилируется, но компилятор (разумно) жалуется, что foo
не совсем правильный тип.Итак, вопрос в том, что является правильным типом для указателя функции в структуре?И это зависит от того, что вы хотите, чтобы он делал.