打印

回调函数问题

[复制链接]
784|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2012-5-30 19:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int init_dev()
{
phy_obj = (struct physical_interface*) malloc(sizeof(struct physical_interface));
register_phy_obj(phy_obj);
phy_obj->g_init_phy_layer(); ??????
}

//phy_obj为
struct physical_interface
{
init_phy_layer g_init_phy_layer; //typedef void (*init_phy_layer)();
}
struct physical_interface * phy_obj;

//register_phy_obj为
void register_phy_obj(struct physical_interface * phy_obj)
{
phy_obj->g_init_phy_layer = init_phy_dev;
}

请问“”??????”“那一句什么意思????

相关帖子

沙发
gxgclg| | 2012-5-30 19:13 | 只看该作者
使用了一个函数指针init_phy_dev;逻辑就是调用init_phy_dev函数。

使用特权

评论回复
板凳
dfsa| | 2012-5-30 19:23 | 只看该作者
register_phy_obj(phy_obj);   
这句意思是注册,
其实就是给phy_obj里面的成员g_init_phy_layer赋值init_phy_dev 。就是地址给他

phy_obj->g_init_phy_layer(); ??????

那上面这句话就是调用了。

回调函数的使用方法就是这样。
地址加(参数)
你参数为空。所以就长这样了
phy_obj->g_init_phy_layer()

使用特权

评论回复
地板
无冕之王| | 2012-5-30 19:26 | 只看该作者
就是指针调用它的成员函数阿。。。怎么了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝