void (*pf)(int i){
};
根据 C++11,我不需要尾随的“;”,但 Dev-C++ 不仅会引发警告 - 还会引发错误并中断编译。
但如果我宣布
void pf(int i){
}
不再抛出警告?
最佳答案
你展示的两件事是截然不同的。
void (*pf)(int i){
};
上面将
pf
定义为一个指向函数的指针,该函数接受一个 int
并返回 void
,并且 values 对其进行初始化。分号是 需要 。它与void (*pf)(int i) = nullptr;
在第二个片段中
void pf(int i){
}
pf
是一个接受 int
并返回 void
的函数。我猜你的 Dev-C++ 版本不支持 C++11 的统一初始化语法。以下应该工作
void (*pf)(int i) = NULL;
关于c++ - 指向函数需要的指针;定义后,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23743401/