【问题标题】:C++ pointer to function declaration syntax指向函数声明语法的 C++ 指针
【发布时间】:2018-05-24 00:32:37
【问题描述】:

foo 的参数的两个声明有什么区别?第二个中的语法对我来说很熟悉,它声明了一个指向函数的指针。两个声明完全等效吗?

void foo(int(int));
void foo(int(*)(int));

【问题讨论】:

标签: c++ function-declaration


【解决方案1】:

只要在函数参数列表中使用int(int)int(*)(int),它们是等价的。在函数参数列表中,int(int) 由语言自动调整 以表示int(*)(int)

相同的adjustment mechanism 使int [] 参数声明等同于int * 参数声明。

在这个特定的上下文之外,int(int)int(*)(int) 意味着两个不同的东西。

【讨论】:

  • 谢谢!您能否详细说明函数参数上下文之外的声明的两种不同含义是什么?你的意思是一个声明一个函数类型,另一个声明一个指针? IE。在我的问题中已经在 cmets 中指出了什么?
猜你喜欢
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多