ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1040083 Топик полностью
RxTx (25.09.2020 17:29, просмотров: 439) ответил teap0t на Этот вопрос я тоже не понял, но схитрил и проверил компилятором. Получил то же самое, но без защитной обёртки (без подавления ошибок). Вот так выглядит вызов после препроцессора:
(void)0 - пустое выражение, хак, компилер не генерирует код. Макро можно было просто сделать пустым и в локальном случае это может сработать, но не во всех. Проблема будет там, где пустой макрос будет включен в код. 

Пустое выражение обрамленное подавляющими прагмами и завернутое в идиому "пустого блока/оператора" скажем так... Выглядит странновато.

(void)0 это было именно выражение, ты изменил семантику asset_param(). Смысл его изменился. Для тебя сейчас это просто "я изменил текст компиляется же, что тебе надо" но вообще такое делать не следует. Будет компилироваться только в твоем конкретном случае. Где-то сломается.