SasaVitebsk:
Да, примерно так так в конце концов у меня и получилось. С той разницей, что я использовал не указатель, а напрямую адресовал конкретное поле в конкретном экземпляре структуры.
И проблемы по большому счёту тоже нет, как Вы правильно заметили. Есть только один момент: при внесении изменений в структуру (а такое иногда бывает), приходится заново вычислять смещение для некоторых её полей (вручную), и менять соотв. дефайны. При создании темы у меня была надежда, что описание структуры (в .h-файле) можно скормить компилятору, что бы он сам проделывал эту работу. Сбыться ей, судя по всему, не судьба.
Цитата(zltigo)
Порядок гарантирован, а pack, конечно, безвреден для 8bit, но и одновремено совершенно для них бесполезен.
У меня были проблемы с порядком размещения полей в структуре, от которых удалось избавиться при помощи #pragma pack. Может я чего не так делал, или настройки проекта неправильные, но победить удалось после её добавления. Вот сама структура:
Код
union TDate
{
unsigned char date[3];
struct
{
union
{
unsigned short mmdd;
struct
{
unsigned char dd, mm;
};
};
unsigned char yy; //
};
};
Если есть желание, попробуйте, может у вас будет нормально без прагмы... Если да, дайте знать.