看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1474942361.A.C21.html
LPH66: 關鍵字: 函式指標 09/27 10:23
LiloHuang: 這是用 C 寫 OO 的做法,把 p_obj 想成 this 指標就是 09/27 10:31
LiloHuang: 可以看看 Axel Schreiner 寫的 https://goo.gl/WrD6Kc 09/27 10:32
kevingwn: 從jpege.c 1465行來看 p_obj->create是用來做檢查的 09/27 11:04
kevingwn: 不會用來呼叫 09/27 11:05