Автор
|
Тема: BC5.02: Ambiguouse operators need parentheses
|
server_mouse |
опубликован 16-11-2001 11:16 MSK
Делаю тут курсач -- графический редактор TIFF. Для дос. Компилятор вот так страшно ругается на внутрености библиотеки, а именно на операции сдвига: *op++ = (tidataval_t)(*tp >> 8 & 0xff); например. Чего ему надо???
|
server_mouse
|
опубликован 16-11-2001 00:34 MSK
Сделал вот так: *opt++=(tidataval_t)((*tp>>8) & 0xff);Ведь смысл не изменился? У сдвига ведь всеравно бОльший приоритет? Компилер ругатся бросил. |
rodion
|
опубликован 16-11-2001 00:42 MSK
я тоже так думал... |
server_mouse
|
опубликован 16-11-2001 13:17 MSK
2rodion: думаЛ...??? Прикалываешся??? |
Valery
|
опубликован 16-11-2001 14:05 MSK
При чем здесь думал - не думал? По стандарту у операторов сдвига действительно должен быть приоритет больше. А вот почему борланд с этим не согласен - это уже другой вопрос. На вижуале компилируется нормально. 2server_mouse: уже не первый глюк борланда, наверное и не последний. Меня они (глюки) вынудили отказаться от борландского компилятора, держу теперь его только для старых проектов, которые переделывать лень. |
server_mouse
|
опубликован 16-11-2001 14:18 MSK
2Valery: К сожалению вижуал не могет собрать дос-программу. |
Valery
|
опубликован 16-11-2001 14:24 MSK
sorry - не заметил. ну тогда считай что тебе повезло - твой случай хоть как-то обходится, я наталкивался на такое, что камланием с бубном не обходилось. |
rodion
|
опубликован 16-11-2001 19:09 MSK
server_mouse: Не понял... Вопрос на засыпку чему равен j после j=j++? |
server_mouse
|
опубликован 16-11-2001 22:27 MSK
2rodion : Увеличится на 1. Хоть присваивание и выполнится первым, но ++ всё равно сработает. Правильно??? В компилятор не загонял, говорю навскидку. |
server_mouse
|
опубликован 16-11-2001 22:37 MSK
Хех, всё-таки не удержался посмотрел. Всё как я и говорил: j=j++; //Присваивание... 0040102F mov eax,dword ptr [ebp-4] 00401032 mov dword ptr [ebp-4],eax //Увеличиваем на 1 00401035 mov ecx,dword ptr [ebp-4] 00401038 add ecx,1 0040103B mov dword ptr [ebp-4],ecx;))) |
SBV
|
опубликован 17-11-2001 00:28 MSK
Чему? j - после ++; :) |