C++ 指向函数声明语法的指针
C++ pointer to function declaration syntax
在 foo
的参数中,这两个声明有什么区别?第二个语法对我来说很熟悉,它声明了一个指向函数的指针。两个声明是否完全等价?
void foo(int(int));
void foo(int(*)(int));
只要在函数参数列表中使用int(int)
和int(*)(int)
,它们是等价的。在函数参数列表中,int(int)
被语言自动 调整 为 int(*)(int)
。
adjustment mechanism 使 int []
参数声明等同于 int *
参数声明。
在此特定上下文之外 int(int)
和 int(*)(int)
表示两个不同的意思。
在 foo
的参数中,这两个声明有什么区别?第二个语法对我来说很熟悉,它声明了一个指向函数的指针。两个声明是否完全等价?
void foo(int(int));
void foo(int(*)(int));
只要在函数参数列表中使用int(int)
和int(*)(int)
,它们是等价的。在函数参数列表中,int(int)
被语言自动 调整 为 int(*)(int)
。
adjustment mechanism 使 int []
参数声明等同于 int *
参数声明。
在此特定上下文之外 int(int)
和 int(*)(int)
表示两个不同的意思。