Цитата(aaarrr @ Apr 22 2009, 01:36)

Почему нельзя сдвинуть 32-х разрядную переменную вправо на 16 бит?
Ну ядро 16-разрядное (MSP430). Будет 32-разряда в двух регистрах держать. И сдвиги только на один разряд делает. Я просто подумал, а вдруг и правда будет 16 раз двигать, да еще и в младший регистр биты задвигать... Долго...

Или компилятор умный, догадается чего от него хотят?
А то я тут писал программку, short int на два 8-разрядных порта распихивал. Шоб не мудрить, использовал "intrinsic"-функцию __swap_bytes() - поменять в short int байты местами (такая команда у ядра есть, иаровцы для си-компилятора ее продублировали...) Может не стоило так делать? Уверен, гуру меня за это поругает

- переносимость страдает и все такое...