История изменений
Исправление PPP328, (текущая версия) :
Использовали в рабочем проекте:
/*! \brief Подписывает пользователя на требуемое событие
* \param[in] name Имя события
* \param[in] func Функция обратного вызова для этого события
* \return Истина в случае успеха */
#define hrn_subscribe(name, func) \
_hrn_subscribe( \
name, \
_Generic((func), \
hrn_callback_int : HRN_CALLBACK_INT, \
hrn_callback_string : HRN_CALLBACK_STRING, \
hrn_callback_json : HRN_CALLBACK_JSON, \
hrn_callback_binary : HRN_CALLBACK_BINARY, \
default : HRN_CALLBACK_NONE \
), \
func \
)
Без _Generic надо было бы передавать еще и тип.
Исходная версия PPP328, :
Использовали в рабочем проекте:
/*! \brief Подписывает пользователя на требуемое событие
* \param[in] name Имя события
* \param[in] func Функция обратного вызова для этого события
* \return Истина в случае успеха */
#define hrn_subscribe(name, func) \
_hrn_subscribe( \
name, \
_Generic((func), \
hrn_callback_int : HRN_CALLBACK_INT, \
hrn_callback_string : HRN_CALLBACK_STRING, \
hrn_callback_json : HRN_CALLBACK_JSON, \
hrn_callback_binary : HRN_CALLBACK_BINARY, \
default : HRN_CALLBACK_NONE \
), \
func \
)
Без _Generic была бы куча ифов.