QUOTE (Сергей Борщ @ Aug 31 2015, 15:39)

В чистом, как слеза, Си, результатом оператора '=' является левый операнд, т.е. присваиваемое, вне зависимости от наличия скобок. А вот сама запись содержимого правого операнда в левый является побочным эффектом этого оператора. Это свойство позволяет писать a= b = c; И результат этого выражения будет идентичен выражению a = (b = c);, т.е. скобки здесь никакой синтаксической роли не играют.
писать "a = b = c" БЕЗ скобок вообще-то позволяет ПРАВИЛО ассоциативности, которое для '=' справа-налево, а не слева-направо, как для, например '=='.
Так-что о к чему все это было написано не пойму

.
Ну и кроме всего этого - а зачем ты пытаешься подменить этим a = b = c, выраженние, которое вообще-то a == b = c ?
Давай ты на пару с
GetSmart , заглянешь хотя-бы в букварь K&R там прямо вариант while ((c = *ptr++)) рассматривается.
QUOTE
Сочувствую... gcc пишет так:
CODE
./xxxx.cpp:125:16: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
while( c = 3 )
^
Со скобками, соответственно, молчит. Ждите новую версию кейла.
То есть все правильно - скобки отработали. Ну а на константное GCC традиционно не выдает предупреждений

. Можно смело писать багрепорт на Кейл

- называние темы таки ПРАВИЛЬНОЕ!
QUOTE (GetSmart @ Aug 31 2015, 16:22)

Если бы скобки приводили любое выражение
О любом речь не шла. Только в выражении содержащем оператор присваивания.
QUOTE
Если какой-то компилятор при этом перестаёт ругаться, то это его фича.
Вместо рассуждений, ну ознакомьтесь хоть с букварем от K&R такм Вам Автор языка покажет while ((c = *ptr++)) с "лишними" скобками.