【问题标题】:Define struct with Byte range in C在 C 中定义具有字节范围的结构
【发布时间】:2022-02-04 18:10:54
【问题描述】:

鉴于这些字节范围(我在网上选择的一个示例),如何在 C 中定义这个结构?

这些是字节范围而不是位宽。还有这在内存中会是什么样子?

字节描述

07:00 该字段的定义是特定于 Fabrics 响应类型的。

09:08 SQ 头指针 (SQHD)

11:10 保留

13:12 命令标识符 (CID)

15:14 状态 (STS):指定相关 Fabrics 命令的状态。

  Bits Definition ->Status (STS)
  15:01 Status Field
  00 Reserved

【问题讨论】:

  • 我正在寻找类似 uint8_t A : 8 的东西

标签: c memory struct


【解决方案1】:

您将使用char 的数组:

struct {
  char response_specific[8];
  char SQHD[2];
  char reserved[2]
  ...
}

您需要考虑填充/包装问题(请参阅here)。如果您希望它们实际存储在内存中,这一点很重要(例如,如果您尝试使用它来解析来自文件或套接字的二进制消息)。

或者,您可以只使用一个长 char[] 并使用索引来访问字段。

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 2020-02-18
    • 1970-01-01
    • 2014-04-17
    • 2014-12-20
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多