【发布时间】:2019-04-27 13:55:52
【问题描述】:
我正在阅读this answer - about function name as pointer,在帖子中作者说为什么它没有被编译是未知的,这是我的问题,我想知道为什么。 (请不要激怒作者,否则我会生气,谢谢。)
那么如何给f赋值呢?
这是直接从那里复制的代码:
typedef void (*pointer)(void);
typedef void (function)(void);
void foo(void){}
int main()
{
pointer p;
function f;
p = foo; //compiles
p();
f = foo; //does not compile
f();
}
错误信息是:
error: cannot convert ‘void()’ to ‘function {aka void()}’ in assignment
【问题讨论】: