Union / Structure数据类型和位字段引用速度

时间:2012-02-20 19:56:54

标签: c struct bit-fields unions

使用以下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;

1 个答案:

答案 0 :(得分:1)

唯一可以确定的方法是对两个版本进行编码并在目标系统上对其进行分析,以进行多种编译器优化设置。如果你看到一个可衡量的差异,我真的会感到惊讶。