这几天在看MTK电池这一块的算法,阅读代码的时候看到一个问题,搞得不是很明白,求高手解答!
前面的定义:
typedef kal_int32 (*BATTERY_METER_CONTROL)(BATTERY_METER_CTRL_CMD cmd, void *data);
BATTERY_METER_CONTROL battery_meter_ctrl;
kal_int32 bm_ctrl_cmd(BATTERY_METER_CTRL_CMD cmd, void *data)
{
kal_int32 status;
if(cmd < BATTERY_METER_CMD_NUMBER)
status = bm_func[cmd](data);
else
return STATUS_UNSUPPORTED;
return status;
}
最后调用的地方:
battery_meter_ctrl = bm_ctrl_cmd;
有两个问题不是很明白:
1、bm_ctrl_cmd不带参调用,我只知道有默认参数可以这样调用,但是没有找到默认参数的地方?
2、bm_ctrl_cmd 调用的时候都没有()
不应该是这样吗?battery_meter_ctrl = bm_ctrl_cmd();