Что это делает:
(void)(foo);
Приводит выражение foo
к типу void
. Это способ сказать, что выражение явно не используется.
Если вы посмотрите на определение функции SVCCTL_RegisterCltHandler
, вы увидите, что она принимает параметр с именем pfBLE_SVC_Client_Event_Handler
. Этот параметр используется в блоке препроцессора #if
. Если условие #if
ложно, в противном случае этот параметр не будет использоваться, и компилятор выдаст предупреждение о том, что параметр pfBLE_SVC_Client_Event_Handler
не используется.
Приведением этого параметра к void
в #else
блок, он использует значение и заглушает предупреждение компилятора.