|
Оба доступа к EEDATA стоят на равных приоритетах по скобкам относительно операции дизъюнкции. Перегруппирую Вашу запись.
( ((EEADR=(4)),(RD=1),EEDATA) & 0x0F ) |
( ((EEADR=(5)),(RD=1),EEDATA) << 4 );
А слева или справа начинать интерпретировать выражение дело компилятора, как и перегруппировать ассоциативные операции. Повнимательнее прочитайте ANSI и найдете разрешение компилеру тут сглючить.
Классический пример полностью аналогичного законного глюка - это MSVC и a = (++b) + (++b) + (++b);
E-mail: info@telesys.ru