用c调用struct中的union成员

标签 c struct

下面是我正在处理的一段代码..

struct ArgusRecord {
   struct ArgusRecordHeader hdr;
   union {
      struct ArgusMarStruct     mar;
      struct ArgusMarSupStruct  sup;
      struct ArgusFarStruct     far;
      struct ArgusEventStruct event;
#if defined ARGUS_PLURIBUS
      struct ArgusVflowStruct vflow;
#endif
   } ar_un;
};

我已经将我的变量定义为

struct ArgusRecord MyRecord;

我可以调用第一个成员 MyRecord.hdr 如果我以同样的方式调用 union 成员,例如 marsup .. 等我我收到错误消息 ..... has no member named 'mar'

请谁告诉我怎么给 union 成员(member)打电话。

最佳答案

您必须使用 union 名称 ar_un 调用

MyRecord.ar_un.mar

关于用c调用struct中的union成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293935/

相关文章:

c - 我是否创建一个临时 c 结构并通过套接字发送它?

c++ - 将 char 数组(或一些字节)视为结构对象。它是如何工作的?

c - 内存大小加载和存储惩罚分析?

c - RT 定时器奇怪的行为

c - 链表和树

C 编程根据 4 个字符串对结构数组进行排序

c++ - 在 C++ 中的一行中初始化并返回一个结构

在 C 中将 int 转换为 2 字节的十六进制值

c - WM_USER 与 WM_APP

objective-c - ObjC/C 语法 : static void *const Something = (void *)&Something;