全局和局部范围内函数指针的定义和赋值
我希望这是一个简短的问题。我想知道为什么下面注释掉的行在放置在全局级别时会导致错误,而在放置在主函数内时却可以正常工作?
非常感谢
#include <iostream>
using namespace std;
bool compare(const int &v1, const int &v2) {
if (v1 < v2) {
return true;
} else {
return false;
}
}
bool (*pf5)(const int &v1, const int &v2);
//pf5 = compare;
int main() {
int v1 = 5;
int v2 = 6;
pf5 = compare;
bool YesNo1 = compare(v1, v2);
cout << YesNo1 << endl;
bool YesNo3 =pf5(v1, v2);
cout << YesNo3 << endl;
return 1;
}
A quick question I hope. I would like to know why the line commented out below causes an error when placed at the global level while it works fine when placed inside the main function?
Many Thanks
#include <iostream>
using namespace std;
bool compare(const int &v1, const int &v2) {
if (v1 < v2) {
return true;
} else {
return false;
}
}
bool (*pf5)(const int &v1, const int &v2);
//pf5 = compare;
int main() {
int v1 = 5;
int v2 = 6;
pf5 = compare;
bool YesNo1 = compare(v1, v2);
cout << YesNo1 << endl;
bool YesNo3 =pf5(v1, v2);
cout << YesNo3 << endl;
return 1;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
除了内部函数之外,您无法执行分配。但是您可以执行初始化:
You can't perform assignments except inside functions. You can however perform initialisations: