0

假设我有一个存储回调的变量。

void* (*function)(int, double);

现在我想创建一个函数,它将返回这个回调。我不希望用户直接访问回调,而是通过函数访问。这不起作用:

void* (*)(int, double) getCallback();

我的问题是:这种功能的原型会是什么样子?

4

2 回答 2

5

typedef回调类型:

typedef void* (*pf)(int, double);

pf getCallback();

这也将确保手动输入错误的签名等不会出错。

于 2012-07-10T08:26:14.460 回答
4

好吧,直接的语法是

void* (*getCallback())(int, double);

但可能更好、更易读的方法是使用 typedef:

typedef void* (*CallbackFunc)(int, double);

CallbackFunc getCallback();
于 2012-07-10T08:28:12.673 回答