使用以下union typedef,访问MyPacket.Byte.LB与MyPacket.Field.LB之间的速度是否存在差异?
typedef union // create a union to assemble bytes into ints
{
int Packet; // contains an int
struct
{
char HB;
char LB;
}Byte;
struct
{
unsigned field1:4;
unsigned field2:2;
unsigned field3:1;
unsigned field4:1;
unsigned LB:8;
}Field;
} packetunion;
packetunion MyPacket;
答案 0 :(得分:1)
唯一可以确定的方法是对两个版本进行编码并在目标系统上对其进行分析,以进行多种编译器优化设置。如果你看到一个可衡量的差异,我真的会感到惊讶。