难以理解c ++中的函数指针

时间:2018-02-14 11:09:37

标签: c++ function-pointers

我正在阅读Bjarne Stroustrup的C ++编程语言。它在某处使用using关键字来生成函数指针数据类型P1和P2,如下所示:

using P1 = int(∗)(int∗);

using P2 = void(∗)(void);

但是它使用using关键字来创建另一个函数指针数据类型:

using CFT = int(const void∗, const void∗);             -(1)

然后它使用CFT来声明一个函数指针并在一些ssort函数中传递它:

void ssort(void∗ base, siz e_t n, size_t sz, CFT cmp);

我的问题是它是否正在使用"使用"来制作函数指针数据类型。然后不应该 - (1)是:

using CFT=int(*)(const void*, const void*); 

而不是它实际上是什么?

1 个答案:

答案 0 :(得分:5)

在C和C ++中,false在这里是可选的。

是的,这很令人困惑。关于函数指针类型,这是一个奇怪的事情。

如果作者坚持使用两种可能的语法中的一个,那会更好。