有这个代码:
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;
}
在函数参数列表中,您可以将函数参数定义为函数或函数指针(参见函数g
参数列表)。然而,在main
函数中,只有指向函数版本的指针似乎有效。有没有办法在块范围内定义函数变量(不是函数指针)(如函数中的void f() = a
变量g
)?