微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将函数声明为指针的目的是什么?

如何解决将函数声明为指针的目的是什么?

今天我在浏览一个名为 CrossWindow-Graphics 的项目的源代码时,看到了一个有趣的函数声明。代码似乎被声明为函数指针。这是我写的一个类似的例子。

#include <iostream>
using namespace std;

void (*test())
{
    cout << "Test Called!" << endl;
}

int main()
{
     test();
     return 0;
}

我的问题是为什么 C++ 允许这样做。我想它与函数指针有关。我记得 typedef 实际上只是创建一个变量,变量的名称成为新类型,所以我认为这与创建“变量”相同,但它指向代码。即使这是正确的想法,这样做的目的是什么?

解决方法

您在这里真正所做的只是添加了一对额外的 (),它什么也不做。 我们可以编写与

相同的函数
void* Test() { ... }

这是一个返回 void* 的函数。

所以函数应该有一个返回语句,它返回一个空指针。一些编译器会对此发出警告,如here 所示。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。