2012-04-22 56 views
0

int(* ptFunction)(float,char,char);用不同的返回类型将函数的地址赋给函数指针

char func(float,char,char);

如果我们使用不同的返回类型,就像我们在上面的两个函数声明中做的那样,下面的赋值将会正确地工作还是会给编译错误?

ptFunction = &func;

+0

这是更好地为你指出你暗示(C或C++)的语言?之后,可以通过测试来检查它。 (我不是一个标准粉丝,所以我不能以其他方式回答这个问题) – parallelgeek 2012-04-22 20:17:10

+0

上面的代码片段来自C++。 – 2012-04-22 20:19:41

回答

0

下面的代码提高(以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; 
}