[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Поясню.
Компилятор имеет право складывать, но если у него хороший оптимизатор - он этого делать не будет, а просто в отдельные байты все распихает. А если у компилятора оптимизатор плохой - тогда стоит задуматься, а почему все-таки используется именно этот компилятор? К корректности программы это не имеет никакого отношения.
Если для задачи скорость и размер программы не важны - тогда все равно, как писать, 256*hi+lo или (hi << 8) | lo. Не имеет значения, как компилятор это скомпилирует. Только не следует смешивать побитовые и арифметические операции, все-таки это разные вещи. Опять же, к формальной корректности программы это не имеет никакого отношения.
Поэтому, если нет реальной потребности заниматься микрооптимизацией, следует писать так, как для большинства людей наиболее естественно: 256*hi+lo. Пусть поработает компьютер.
E-mail: info@telesys.ru