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