There is this code:
void a() { }
// function parameter first defined as function, then as pointer to function
void g(void f() = a, void (*d)() = a) {
}
int main(){
void (*z)() = a; // works ok
//void z() = a; error: illegal initializer (only variables can be initialized)
return 0;
}
In function parameter list you can define function parameter as a function or as pointer to function (see function g parameter list). However in main function only pointer to function version seems to work. Is there some way to define a function variable (not a pointer to function) in block scope (like the void f() = a variable in g function)?