Я работал сегодня, когда натолкнулся на следующую функцию:
void button_scheduler_event_handler(void *p_event_data, uint16_t event_size)
{
button_handler(*((nrf_drv_gpiote_pin_t*)p_event_data));
}
с обработчиком кнопки, определенным следующим образом:
void button_handler(nrf_drv_gpiote_pin_t pin)
Я не уверен, что встречался с этим синтаксисом:
button_handler(*((nrf_drv_gpiote_pin_t*)p_event_data));
раньше, и я немного сбит с толку. Моя первая мысль: синтаксис для вызова button_handler должен быть следующим:
button_handler(((*nrf_drv_gpiote_pin_t) *p_event_data));
Однако у меня нет хорошего объяснения, почему.
Может кто-нибудь объяснить это?
Редактировать: после ввода от пользователя UnholySheep