Discuz! Board
标题:
请教一个函数
[打印本页]
作者:
ldcung
时间:
2015-9-3 23:24
标题:
请教一个函数
本帖最后由 ldcung 于 2015-9-3 23:25 编辑
在LED例程中,事件处理函数如下:
void ble_lbs_on_ble_evt(ble_lbs_t * p_lbs, ble_evt_t * p_ble_evt)
{
switch (p_ble_evt->header.evt_id)
{
case BLE_GAP_EVT_CONNECTED:
on_connect(p_lbs, p_ble_evt);
break;
case BLE_GAP_EVT_DISCONNECTED:
on_disconnect(p_lbs, p_ble_evt);
break;
case BLE_GATTS_EVT_WRITE:
on_write(p_lbs, p_ble_evt);
break;
default:
// No implementation needed.
break;
}
}
里面调用了 on_connect(p_lbs, p_ble_evt); 函数。但是这个函数的原型是
static void on_connect(ble_evt_t * p_ble_evt)
{
// Save connection parameters
m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
m_current_conn_params = p_ble_evt->evt.gap_evt.params.connected.conn_params;
m_update_count = 0; // Connection parameter negotiation should re-start every connection
// Check if we shall handle negotiation on connect
if (m_conn_params_config.start_on_notify_cccd_handle == BLE_GATT_HANDLE_INVALID)
{
conn_params_negotiation();
}
}
为什么这个函数的形参只有一个,但是调用的时候传进来两个实参?而且传进来的第一个实参p_lbs在哪里用到了?
还请大神们指点迷津。小弟不胜感激!
作者:
ldcung
时间:
2015-9-4 10:10
哦,我已经搞明白了,原来那个不是真正的函数原型,真正的函数原型如下:
static void on_connect(ble_lbs_t * p_lbs, ble_evt_t * p_ble_evt)
{
p_lbs->conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
}
作者:
admin
时间:
2015-9-4 11:09
ldcung 发表于 2015-9-4 10:10
哦,我已经搞明白了,原来那个不是真正的函数原型,真正的函数原型如下:
static void on_connect(ble_l ...
的确,你找错函数了
欢迎光临 Discuz! Board (http://qfv8.com/)
Powered by Discuz! X3