恳求高手:error C2659:'=' : overloaded function as left operand

时间:2020-11-28 17:05:03
error C2659:'=' : overloaded function as left operand
请教产生这个错误会有哪几种具体情况?
MSDN里说得太简单了,看了也不明白。

另外,在下面这段代码中,fv和pfv的具体意思好懂,可是变量signal的具体意义怎么解释啊?
*signal( int, fv * )和signal( int, pfv )都应该是指向void fv( int )类型函数的指针,这样说对吗?如果对,signal应该指向什么样的函数呢?
我曾想signal应该是一个指向返回类型为pfv、参数列表为( int, pfv )的函数的指针,可是具体实现起来总是出现错误,请高手指点。
(下面的代码出自MSDN,在MSDN中索引Typedef Declarations就会找到)

typedef void fv( int ), (*pfv)( int );  /* typedef declarations */

void ( *signal( int, void (*) (int)) ) ( int );
fv *signal( int, fv * );   /* Uses typedef type */
pfv signal( int, pfv );    /* Uses typedef type */

4 个解决方案

#1


好像有点懂了,signal是定义的一个函数,返回类型为pfv,参数列表为( int, pfv )

#2


正确

#3


正确

#4


好像网上有一篇叫右左法则的,看了那篇文章,一般比较难的C语言语句就都能懂了

#1


好像有点懂了,signal是定义的一个函数,返回类型为pfv,参数列表为( int, pfv )

#2


正确

#3


正确

#4


好像网上有一篇叫右左法则的,看了那篇文章,一般比较难的C语言语句就都能懂了