Указатель на функцию с аргументом указателя на функцию - PullRequest
0 голосов
/ 08 декабря 2018

Может кто-нибудь помочь мне объяснить, почему работает приведенный ниже код.

Почему действует строка func = foo.

typedef int (* fx) (int *fy());
unsigned int foo(void);

int main()
{
    fx func;
    func = foo;
    func(&foo);
    return 0;
}

unsigned int foo(void)
{
    printf("Done!");
}

1 Ответ

0 голосов
/ 08 декабря 2018

Имеет ли это смысл?

#include <stdio.h>
typedef int (*fx)(void); // fx is defined as a type of function that returns an int and takes no arguments

int foo(void) {
    printf("Done!");
    // "control reaches end of non-void function"
}

int main() {
    fx func;
    func = foo;
    //func(&foo);
    func();
    return 0;
}
...