Я нашел это при чтении некоторого исходного кода.
#define MACRO(x) if((void) 0, (x)); else some_func();
Я не совсем понимаю причины, стоящие за этой запятой оператора и литой пустоты. Вероятно, это связано с макрозащитой, я знаю, что (void)0
иногда используется для защиты каскадирования else
в макросах, например, в if(...) then foo(); else (void)0
.
Любые идеи о том, почему существует служебная запятая?
edit: Я начинаю думать, что это имеет какое-то отношение к owl (0,0)
.