[an error occurred while processing this directive]
|
Ну вот цитата из талмуда по C для 6000
struct:
Multiple of 8 bits aligned to boundary of largest member
type; members are stored and aligned as their
individual types require.
И еще, 32-х разрядные данные должны быть выравнены по 4-х байтной границе. 16 - по 2-х. Процессорные инструкции (LD*,ST*) требуют именно такого выравнивания. И компилятор C сгенерирует одну LDW если требуется прочитать 32 разряда. Он не будет генерировать 4 LDB со сдвигами и or' ами. Или 2 LDH. Т.е. вышеприведенное выравнивание структур вызвано железом, но оно наверное (точно не знаю пока) действует и для c64, хотя у них есть добавочные инструкции, не требующие выравнивания. Для совместимости, так сказать.
В общем видимо Вам придется какие-то коррекции в программе делать. Так думаю.
E-mail: info@telesys.ru