Нередко использовать объединение двух похожих структур. (Нельзя сказать, что это хорошо в вашей конкретной ситуации без дополнительной информации.)
Правильный синтаксис:
typedef unsigned char U8;
typedef union
{
struct
{
U8 A1;
U8 A2;
U8 A3;
} NewStruct_1;
struct
{
U8 B1;
U8 B2;
U8 B3;
} NewStruct_2;
} NewUnion;
Кроме того, удаление имен из внутренних элементов структуры делает их анонимными, а затем элементы A1
, A2
, A3
, B1
, B2
и B3
выглядят так, как если бы они были члены внешнего союза:
typedef unsigned char U8;
typedef union
{
struct
{
U8 A1;
U8 A2;
U8 A3;
};
struct
{
U8 B1;
U8 B2;
U8 B3;
};
} NewUnion;
Тогда, если x
является NewUnion
, вы можете использовать x.A1
вместо x.NewStruct_1.A1
.