C++ anonymous structs

感情迁移 提交于 2019-12-05 03:37:23

The gcc compiler option -fms-extensions will allow non-standard anonymous structs without warning.

(That enables what it considers "Microsoft extensions")

You can also achieve the same effect in valid C++ using this convention.

union Byte
{
  struct bits_type {
    unsigned int _0: 1;
    unsigned int _1: 1;
    unsigned int _2: 1;
    unsigned int _3: 1;
    unsigned int _4: 1;
    unsigned int _5: 1;
    unsigned int _6: 1;
    unsigned int _7: 1;
  } bit;
  struct nibbles_type {
    unsigned int _0: 4;
    unsigned int _1: 4;
  } nibble;
  unsigned char byte;
};

With this, your non-standard byte.nibble_0 becomes the legal byte.nibble._0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!