Цитата(west329_ @ Apr 4 2011, 22:56)

Структура взята из 8 битных АВР, как оказывается неправильно работает на 16битных пик
Первый unsigned char StartMarker съедает 2 байта согласно архитектуре, последующие данные сдвигаются соответственено.
Можно ли как то обойти такое, и обращаться побайтно ?
что значит "неправильно" ? код хакерского вида не работает? Чего именно Вы хотите?
Если просто доступаться к данным, так используйте указатели на поля, преобразуя их в char*. но гораздо лучше каждое такое поле через union объявить еще и как массив чаров , так нагляднее.
Если сохранить как массив, то размер этой структуры выясняется через sizeof().
если все-таки хотите просто упаковать- так нужно смотреть компилятор, может и получится без выравнивания.