2012-02-20 58 views
0

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

或检查编译的代码..他们应该是相同的 – 2012-02-20 20:40:55