-
- Cтрока var = (var & 0xFFFF) | lobyte; ошибочна. Надо var = (var & 0xFF00) | lobyte; - Petrovich(19.02.2015 12:25,
)
- Ну в общем, все всё поняли :-) - il-2(20.02.2015 11:30)
- С Union можно препроцессором IFом, проверить BIG или LITLE, и выбрать нужный typedef - OlegPowerC(18.02.2015 16:22)
- Именно что! Переносимость не должна доходить до абсурда, когда в глубине вложенных циклов однокомандная операция превращается в пять арифметических. А препроцессор никому не стоит ни такта. Минус -- отлаживать надо обе ветви, ну или на одной Николай Коровин(37 знак., 18.02.2015 20:27)
- Вы с Олегом несколько заблуждаетесь :-) Мой вариант решения по сравнению с использованием union выигрывает и в плане переносимости, и в плане оптимальности результирующего кода!!!. Нет там никаких "пяти арифметических операций". Любой компилятор il-2(280 знак., 19.02.2015 11:28)
- Всё, убедили, эксперимент -- палач любой теории. Я, правда, всё равно такие мелочи или не экономлю вообще, или уж асмом пишу целую врезку... но галочку в уме поставил, спасибо. - Николай Коровин(19.02.2015 17:01, ссылка)
- Я такого не говорил, более того, так как вы, я делаю повсеместно. Я лишь показал решение с объединениями, для совместимости с big/little endian - OlegPowerC(19.02.2015 13:05)
- Вы с Олегом несколько заблуждаетесь :-) Мой вариант решения по сравнению с использованием union выигрывает и в плане переносимости, и в плане оптимальности результирующего кода!!!. Нет там никаких "пяти арифметических операций". Любой компилятор il-2(280 знак., 19.02.2015 11:28)
- Именно что! Переносимость не должна доходить до абсурда, когда в глубине вложенных циклов однокомандная операция превращается в пять арифметических. А препроцессор никому не стоит ни такта. Минус -- отлаживать надо обе ветви, ну или на одной Николай Коровин(37 знак., 18.02.2015 20:27)
- Cтрока var = (var & 0xFFFF) | lobyte; ошибочна. Надо var = (var & 0xFF00) | lobyte; - Petrovich(19.02.2015 12:25,