You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中匿名联合的默认活跃字段如何确定?附代码示例场景

匿名联合的活跃字段问题

你的代码如下:

struct a_struct
{
     int number = 0;

     union
     {
          long l;
          short* sp;
     };
};

之后的赋值操作:

a_struct temp;
temp.number = -1;

此时这个匿名联合没有活跃字段。

原因很明确:联合的活跃成员被定义为「最后被写入的成员」,而你仅对结构体的number成员做了赋值,从未对联合里的l或sp执行过任何写入操作。同时,该联合没有自定义构造函数,默认初始化也不会给其成员赋予确定的初始值,因此不存在任何活跃字段。

内容的提问来源于stack exchange,提问作者basil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:12:44