作者cooboy (0.0)
看板C_and_CPP
标题[问题] function create的方式
时间Tue Sep 27 10:12:38 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Android
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
None
问题(Question):
在网路上看到这段code 有人知道这种写法吗?
jpege_engine_hw_create 呼叫自己?这是要?
另外就是找不到是谁去call这个副程式 会是load library时就被呼叫吗?
static void jpege_engine_hw_create(jpege_engine_obj_t *p_obj,
jpege_hw_obj_t encoder)
{
if (p_obj) {
// Destroy previous engine if it exists
if (p_obj->destroy) {
p_obj->destroy(p_obj);
}
p_obj->create = &jpege_engine_hw_create;
p_obj->init = &jpege_engine_hw_init;
p_obj->check_start_param = &jpege_engine_hw_check_start_param;
p_obj->start = &jpege_engine_hw_start;
p_obj->abort = &jpege_engine_hw_abort;
p_obj->destroy = &jpege_engine_hw_destroy;
p_obj->p_engine = NULL;
p_obj->encoder = encoder;
p_obj->is_initialized = false;
}
}
补充说明(Supplement):
code来源:
https://goo.gl/UoNaJ2
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.173.192
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1474942361.A.C21.html
1F:推 LPH66: 关键字: 函式指标 09/27 10:23
2F:推 LiloHuang: 这是用 C 写 OO 的做法,把 p_obj 想成 this 指标就是 09/27 10:31
4F:推 kevingwn: 从jpege.c 1465行来看 p_obj->create是用来做检查的 09/27 11:04
5F:→ kevingwn: 不会用来呼叫 09/27 11:05