以下例子。我创建一个名为s
的函数指针,将其设置为f
并调用它。编译没有问题,当然:函数指针语法歧义
void f() {}
int main() {
void (*s)();
s = f;
s();
}
但借此在下一个例子,在那里我现在宣布s
为“函数参考”(如果它所谓的),并设置为f
在线。这编译也很好:
void f() {}
int main() {
void (&s)() = f;
s();
}
这两种方法创建和初始化函数指针有什么区别?请注意,当我使用参考语法时,我需要将它“in-line”初始化为f
,而使用“指针”语法,我有两种方法可以完成。你能解释一下吗?那么,你能解释它们在可用性方面的差异吗?何时我必须使用一种形式而不是其他形式?