C / C ++如何包装嵌套结构?

问题描述

如果在我的体系结构中一个单词是4个字节,我希望填充以下结构,以便至少一个单词(4个字节)。

// 4 bytes
struct
{
  uint8_t High : 4;
  uint8_t Low : 4;
} Value;

现在,假设我具有以下嵌套结构:

// ? bytes
struct
{
  uint8_t Address;
  struct
  {
    uint8_t High : 4;
    uint8_t Low : 4;
  } Value;
} Register;

如何包装此结构? Value会保留一个字(4个字节)的大小吗?我期望有两种方式可以打包这种结构,但是我不知道哪种是正确的,甚至是哪一种都不正确。假设R的{​​{1}}沙子,Register是成员A,而Address是成员V。我能想到的两种方法是:

第一:

Value

第二:

    Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8
R =     A     0     0     0     V     0     0     0

谢谢!

解决方法

此结构按以下方式打包:

    Byte1 Byte2 Byte3 Byte4
R =     A     V     0     0

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...