难以理解c ++中的函数指针
Difficulty in understanding function-pointers in c++
我正在阅读 Bjarne Stroustrup 的 The C++ Programming Language。它在某处使用 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);
我的问题是,如果它正在使用 "using" 创建函数指针数据类型,那么第 (1) 行不应该是:
using CFT=int(*)(const void*, const void*);
而不是实际情况?
在 C 和 C++ 中,(*)
在这里是可选的。
是的,这令人困惑。关于函数指针类型,这很奇怪。
如果作者坚持使用两种可能语法中的一种,那就更好了。
我正在阅读 Bjarne Stroustrup 的 The C++ Programming Language。它在某处使用 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);
我的问题是,如果它正在使用 "using" 创建函数指针数据类型,那么第 (1) 行不应该是:
using CFT=int(*)(const void*, const void*);
而不是实际情况?
在 C 和 C++ 中,(*)
在这里是可选的。
是的,这令人困惑。关于函数指针类型,这很奇怪。
如果作者坚持使用两种可能语法中的一种,那就更好了。