联合会占用与其成员中最大类型一样多的内存吗?

Do unions occupy as much memory as the largest type of their member?

关于dlang中的union,有一点让我很困惑,union占用多少内存?例如,我有以下联合:

union Tqvar{
  double d;
  char c;
}

double 类型占用 64 位(如果我没记错的话),char 占用 8 位。由于联合一次只能包含一个值(或 whatever-you-call-it),如果我将 char 存储在它,在c中,联合会占用8位还是64位?

是的,与任何语言一样,D 中的联合必须始终具有足够的内存空间来存储其最大成员。所以它将占用 64 位,加上 Union 容器本身的任何开销,如果有的话。