Тип данных объединения / структуры и скорость обращения к битовому полю - PullRequest
0 голосов
/ 20 февраля 2012

Используя следующее объединение 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 Ответ

1 голос
/ 21 февраля 2012

Единственный способ узнать наверняка - это кодировать обе версии и профилировать их в целевой системе для нескольких настроек оптимизации компилятора. Я был бы искренне удивлен, если бы вы увидели ощутимую разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...