C99 Keil MDK5 中的匿名结构、联合
Anonymous structures, unions in C99 Keil MDK5
我正在努力使大量数据更易于管理。
#pragma anon_unions
typedef union
{
uint8_t Contents[PACKET_SIZE];
struct
{
uint8_t Command;
uint8_t X[24];
uint8_t Y[24];
uint8_t Z[16];
uint8_t something;
.
.
.
};
struct
{
uint8_t Command; // have to rename to dummy_Command to avoid compiler error
uint8_t A;
uint8_t B[6];
uint8_t C[48];
.
.
.
};
} PacketToFromFile;
有没有办法仍然使用相同的名称,例如 'Command' 而没有任何编译器错误?
也许……
#pragma anon_unions
typedef union {
uint8_t Contents[PACKET_SIZE];
struct {
uint8_t Command;
union {
struct {
uint8_t X[24];
uint8_t Y[24];
uint8_t Z[16];
uint8_t something;
:
:
};
struct {
uint8_t A;
uint8_t B[6];
uint8_t C[48];
:
:
};
}
}
} PacketToFromFile;
我没有 Keil 编译器,但我认为这应该可以。
我正在努力使大量数据更易于管理。
#pragma anon_unions
typedef union
{
uint8_t Contents[PACKET_SIZE];
struct
{
uint8_t Command;
uint8_t X[24];
uint8_t Y[24];
uint8_t Z[16];
uint8_t something;
.
.
.
};
struct
{
uint8_t Command; // have to rename to dummy_Command to avoid compiler error
uint8_t A;
uint8_t B[6];
uint8_t C[48];
.
.
.
};
} PacketToFromFile;
有没有办法仍然使用相同的名称,例如 'Command' 而没有任何编译器错误?
也许……
#pragma anon_unions
typedef union {
uint8_t Contents[PACKET_SIZE];
struct {
uint8_t Command;
union {
struct {
uint8_t X[24];
uint8_t Y[24];
uint8_t Z[16];
uint8_t something;
:
:
};
struct {
uint8_t A;
uint8_t B[6];
uint8_t C[48];
:
:
};
}
}
} PacketToFromFile;
我没有 Keil 编译器,但我认为这应该可以。