ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 июля
1233350 Топик полностью
VladislavS. (22.08.2022 14:52, просмотров: 142) ответил Aleksey_75 на а что непонятного, хочу сам задавать положение битового поля в структуре, а не как компилятору вздумается
Как уже писали, компилятор не делает это как вздумается. У вас всего лишь проблема с индейцами. Вот, например, класс для доступа к полям регистра. При обращении к полю доступ напрямую, а если обращение к регистру целиком (макросами теми же), то через перегруженные операторы. В них индейцав можно поменять командой RBIT. Но вообще, плохая идея. Лучше макросы под правильных индейцев переписать и выкинуть их, ибо макросы зло. 
struct GRXSTSP
{
  union
  {
    uint32_t x;
    struct {
      uint32_t epnum        : 4;
      uint32_t bcnt         : 11;
      uint32_t dpid         : 2;
      GRXSTSP_PKTSTS pktsts : 4;
      uint32_t frmnum       : 4;
      uint32_t reserved     : 7;
    };
  };
  inline GRXSTSP operator = (uint32_t data) { this->x=data; return *this; }
  inline GRXSTSP(uint32_t data) { x = data; }
};