C++函数指针赋值为0

TheKestrel 发布于 12/02 18:29
阅读 115
收藏 0

void (* fp)();

给函数指针赋值0时,使用

void (* fp)() = 0;

和 fp = 0; 一样吗?

为什么可以使用void (* fp)() = 0;这种赋值形式?

以下是问题补充:

@TheKestrel:template<int inst> void (* __malloc_alloc_template<inst>::__malloc_alloc_oom_handler)() = 0; (12/02 23:34)
加载中
0
H
Hejs

可以的。void (*fp)() 只是声明而已。

void (*fp)() = 0;
// 和
void (*fp)();
fp = 0;
// 的区别就像
int i = 0;
// 
int i;
i = 0;
// 的区别而已。

 

TheKestrel
TheKestrel
回复 @TheKestrel : 哦,我懂了,主要是因为是类的静态成员。我傻了。:sob:
TheKestrel
TheKestrel
我在STL源码中看到的: void (* __malloc_alloc_template<inst>::__malloc_alloc_oom_handler)() = 0; 在类里面已经定义了,这个能只是赋值吗?
返回顶部
顶部