有一件事使我对工党的工会感到困惑,工会占用了多少记忆?例如,我有以下联合:
union Tqvar{
double d;
char c;
}
double类型需要64位(如果我没有错),并且char需要8.因为联合一次只能包含一个值(或whatever-you-call-it
),如果我在其中存储一个char,在c
中,联合会占用8位还是64位?
答案 0 :(得分:6)
是的,D中的工会,与任何语言一样,必须始终有足够的内存空间来存储其最大的成员。因此它将占用64位,加上Union容器本身的任何开销,如果有的话。