[问题] function create的方式

楼主: cooboy (0.0)   2016-09-27 10:12:38
开发平台(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
作者: LPH66 (-6.2598534e+18f)   2016-09-27 10:23:00
关键字: 函式指标
作者: LiloHuang (十年一刻)   2016-09-27 10:31:00
这是用 C 写 OO 的做法,把 p_obj 想成 this 指标就是可以看看 Axel Schreiner 写的 https://goo.gl/WrD6Kc
作者: kevingwn (如云如风的人生)   2016-09-27 11:04:00
从jpege.c 1465行来看 p_obj->create是用来做检查的不会用来呼叫

Links booklink

Contact Us: admin [ a t ] ucptt.com