草庐IT

c++ - 为什么只有指向函数的指针而不是函数的var?

在C/C++中,我们可以声明/定义一个类型的函数指针,然后声明/定义一些该类型的变量。但我认为这是模棱两可的。例如:typedefvoid(*pFunc)();//typedefvoid(aFunc)();voidtheFunc(){cout理论上只有pFuncpf1=&theFunc;和(*pf1)();是合法的,但以上都可以通过编译。在Pascalsyntax,我们需要分别定义函数的变量或函数指针的变量,它们的含义是不同的,而且更清晰(至少我是这么认为的)!此外,我们不能声明/定义函数的var而不是函数指针的var!我尝试了以下操作但失败了。typedefvoid(aFunc)()