小编Bla*_*Guy的帖子

回调函数的返回类型

我正在检查代码库的遗留代码,并遇到了以下代码:

void *sampleFunction(tUint8 **inParam1, tUint32 inParam2, char *inParam3, tUint32 inParam4, void* inArg1, void* inArg2)
{
    X100 *foo = getFooValue(...);
    return foo;
}
Run Code Online (Sandbox Code Playgroud)

由于我无法发布确切的代码(因为它与工作相关),因此我发布了上面的示例(这正是它的样子)。

X100这里显示的是一个保存一些数据的结构,并且有一个如下所示的回调函数,上面的函数被分配给它(或者这就是我看起来的样子)

typedef void* (*tFileReadVerifyCallback)((tUint8 **inParam1, tUint32 inParam2, char *inParam3, tUint32 inParam4, void* inArg1, void* inArg2);

tFileReadVerifyCallback callBack;

//for a certain case :
callBack = sampleFunction;
Run Code Online (Sandbox Code Playgroud)

现在,我有以下问题:

  1. 为什么sampleFunction返回foo的是类型X100?是因为回调的行为不同吗?
  2. 如果是这样,那么我的下一个问题是这些回调如何工作/返回值如何影响它?

注意:我试图提供足够的信息,同时尽量保持最少。如果需要更多输入,请告诉我,我会尝试编辑它并添加更多信息。

c callback return-type

1
推荐指数
1
解决办法
659
查看次数

标签 统计

c ×1

callback ×1

return-type ×1