-
- Дык здесь вовсе нет неопределенности. Сначала выполняются операции справа от "=", затем полученное значение присваивается тому что слева от "=". Но компилятор действительно тупит почему-то. Я проверил на 4.11B и получил такой же (неправильный) результ - rezident(11.09.2008 22:53)
- а я обращал внимание, что компилятор ругался на подобную конструкцию из трех бинарных операций справа от "=". Якобы "не знаю что вы раньше хотите сделать - P4OUT&0xf0 или data&0x0f, они ведь равнозначны". Вот не помню какая версия так ругалась. Но Argon(106 знак., 13.09.2008 22:11)
- Вы путаете. Компилятор выдает такое предупреждение если справа от оператора "=" находится выражение с более чем одной volatile-переменной. В данном случае volatile-переменная одна, P4OUT. - Cepгeй Бopщ(13.09.2008 23:59)
- Угу. Предупреждение было бы, если бы выражение выглядело, например, как P4OUT |= (P4OUT^data)&data; В этом случае справа от "=" две volatile переменных P4OUT. - rezident(14.09.2008 00:36)
- а у меня был не этот случай, а похожий и обе переменные могли быть volatile, в чем сейчас не уверен. Тогда я разбивал эту конструкцию на 2. Тем не менее проблема 4.11B в чем-то другом. dxwak говорит, оптимизации не было в обоих случаях. rezident Argon(25 знак., 14.09.2008 00:21)
- Вы путаете. Компилятор выдает такое предупреждение если справа от оператора "=" находится выражение с более чем одной volatile-переменной. В данном случае volatile-переменная одна, P4OUT. - Cepгeй Бopщ(13.09.2008 23:59)
- а я обращал внимание, что компилятор ругался на подобную конструкцию из трех бинарных операций справа от "=". Якобы "не знаю что вы раньше хотите сделать - P4OUT&0xf0 или data&0x0f, они ведь равнозначны". Вот не помню какая версия так ругалась. Но Argon(106 знак., 13.09.2008 22:11)
- Нет dxwak(44 знак., 11.09.2008 11:44)
- Дык здесь вовсе нет неопределенности. Сначала выполняются операции справа от "=", затем полученное значение присваивается тому что слева от "=". Но компилятор действительно тупит почему-то. Я проверил на 4.11B и получил такой же (неправильный) результ - rezident(11.09.2008 22:53)