a, b
вычисляет сначала a
, затем b
, и все выражение имеет значение b
.Например, (false, true)
оценивается как true.
Выражение, которое вы даете в качестве примера, имеет значение lcn
после выполнения присваивания.То же самое может быть написано if ((var = func()))
(более часто в скобках скрываются предупреждения компилятора, защищающие от случайного использования =
вместо ==
).