Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c调用结构中的联合成员_C_Struct - Fatal编程技术网

使用c调用结构中的联合成员

使用c调用结构中的联合成员,c,struct,C,Struct,下面是我正在处理的一段代码 struct ArgusRecord { struct ArgusRecordHeader hdr; union { struct ArgusMarStruct mar; struct ArgusMarSupStruct sup; struct ArgusFarStruct far; struct ArgusEventStruct event; #if defined ARGUS_PLURI

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

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
,如果调用工会成员的方式相同,例如
mar
sup
。。etc我收到了错误消息
。。。。。没有名为“mar”的成员


请找个人告诉我如何给工会成员打电话。

你必须用
工会
名称
ar\u un

MyRecord.ar_un.mar

您必须使用
union
name
ar\u un

MyRecord.ar_un.mar

使用点符号访问工会成员。 换句话说,
mar
必须按如下方式访问:

struct ArgusRecord record;
record.ar_un.mar (...)

使用点符号访问工会成员。 换句话说,
mar
必须按如下方式访问:

struct ArgusRecord record;
record.ar_un.mar (...)

MyRecord.ar\u un.的身份访问工会成员。
MyRecord.ar\u un.的身份访问工会成员。