【发布时间】:2018-12-11 18:19:33
【问题描述】:
我有以下函数声明:
typedef void (cback) (scan_results *scan_result, uint8_t *adv_data);
我声明函数如下:
cback my_cback;
我将my_cback 作为输入提供给函数。然后,我想访问my_cback 的参数。我怎样才能做到这一点?
【问题讨论】:
-
你确定这两行能编译吗?
-
是的,我相信它会编译
-
@EugeneSh:假设我将
cback声明为指向函数的指针,以便稍后在声明这样的指针的参数时使用。同时,当我定义my_cback时,我想确保它符合预期的函数类型。如果cback是一个指针,我看不到这样做的方法。但是,鉴于它是一个类型,我可以先声明cback my_cback;,然后用void my_cback(scan_results *, uint8_t *) {…}定义函数,如果它与cback类型不匹配,编译器会给我一个错误。 -
@EugeneSh。需要编写
my_cback的标准定义。你不能为此使用 typedef 别名,当然你需要提供一个与之兼容的定义。 -
@AlperenGörmez:你“想在什么代码中访问
my_cback的参数”?在my_cback的代码中,您只需通过参数名称访问它们,就像在任何其他函数中一样。在任何其他代码中,参数都不在范围内。
标签: c function callback typedef