ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
61686 Топик полностью
Павел В. (29.06.2006 22:16, просмотров: 1) ответил Сергей Борщ на Приношу извинения, Павел действительно прав.
Ну тут такие соображения... 4.12А конструкцию (*(void(*)())3)() компилил с ошибками. А вот 4.20А уже поправился. Давайте немного повернемся к языку Си. Вот если у вас лонг, и этих лонгов несколько, и нужно взять третий из толпы - что делает компилятор? Правильно, он тройку умножает на 4, так? потому, что лонг - это четыре байта. Если у нас указатель на функцию, т.е. на команду, в системе АВР - значит, нужно ее адрес умножить на 2. Так как команды у АВР все двухбайтные. И третья команда у нас окажется ровно в 6-ом байте.