У меня есть простая структура, к которой я также хочу иметь доступ как к простому массиву байтов
Код: Выделить всё
union
{
struct
{
unsigned char a;
unsigned char b;
// ... Some other members ...
unsigned char w;
};
unsigned char bytes[sizeof( what? )];
} myUnion;
Однако без каких-либо name, как я могу получить размер структуры для myUnion.bytes[], кроме вычисления вручную каждый раз, когда я что-то меняю?
Мой текущий обходной путь заключается в использовании #define для устранения проблемы myUnion.myStruct, но это имеет отрицательный побочный эффект, заключающийся в нарушении автозаполнения в редакторе, а также затрудняет работу с моими структурами данных. понять.
Есть идеи?
Примечание: Это работает на 8 -битный процессор. Никаких проблем с выравниванием слов и тому подобным нет. Тем не менее, вероятно, следует указать любые предостережения, чтобы кто-то другой не использовал предложенное решение ненадлежащим образом.
Подробнее здесь: https://stackoverflow.com/questions/235 ... side-union
Мобильная версия