按照我的理解, 就是声明了一个变量p, 类型void(*)(), 然后用&fun给它赋值, 为什么会出错呢?
void(*p)() = &fun;
这样在定义时直接赋值就不会出错.
1
hehuozhao Jul 15, 2012
我用VS2010跑了一下是正确的,如果你把void (*p)();和p = &fun;放在main()里面的话。
|
2
013231 OP @hehuozhao 问题正出在这里. C语言中, 声明可以在全局作用域进行, 但赋值不行. 所以"void(*p)() = &fun;"成功, "void (*p)();p = &fun;"失败.
|
3
013231 OP |
4
xpfd Jul 16, 2012
p = &fun; 赋值语句,只能放在函数体内。
|