【问题标题】:Assigning address of a function with different return type to a function pointer将具有不同返回类型的函数的地址分配给函数指针
【发布时间】:2012-04-22 20:02:33
【问题描述】:

int (*ptFunction) (float,char,char);

char func(float,char,char);

如果我们在上面两个函数声明中使用不同的返回类型,下面的赋值会正常工作还是会产生编译错误??

ptFunction = &func;

【问题讨论】:

  • 您最好指出您使用的是哪种语言(C 或 C++)?之后,可以通过测试对其进行检查。 (我不是一个标准的粉丝,所以我无法以其他方式回答这个问题)
  • 以上代码sn-p来自C++。

标签: function pointers


【解决方案1】:

以下代码引发错误(在 g++ 中):

int (*pFun)(float, char, char);

char fun1(float, char, char) {}

int main() {

  pFun = &fun1; // error: invalid conversion from char (*)(float, char, char) to int (*)(float, char, char)

  return 0;
}

【讨论】:

    猜你喜欢
    • 2014-05-12
    • 2015-04-18
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多