|
если Вы уверены, что "j" в памяти, а не в регистрах, и процессор эффективно поддерживает невыравненную запись байта, то однозначно второй вариант. Если же j оптимизатор хочет в регистре видеть - то
int j = ((int)a) << 24; // если int 32-битный, а char 8-ми.
Имея в виду, что сдвиг на N в нормальных процессорах делается за 1 такт, как собственно и запись в память, то выборе варианта исключительно должен базироваться на основе информации о том, что дальше будет делаться с этим j.
E-mail: info@telesys.ru