void fooPrint(void foo()) {
foo();
}
void fooPrint(void (*foo)()) {
foo();
}
sizeof(foo) == sizeof(&foo)
. По сути тут компилятор просто игнорирует операцию взятия адреса от функции.typedef void (*foo_t)();
void fooPrint(foo_t foo) {
foo();
}