#include <stdio.h>
#include <stdlib.h>
union IFC {
int i;
float f;
char c;
};
int main(void) {
union IFC ifc = {5, 3.14, 'A'};
printf("Union is -\ninteger: %d;\nfloat: %.2f;\ncharacter: %c;\n", ifc.i, ifc.f, ifc.c);
return 0;
}
代码编辑器在第 11 行加下划线3.14。悬停在上面时,会弹出一个工具提示:“联合初始化程序中的多余元素。” 我的联合应该采用 3 个变量,并且它报告第二个变量已经过多。怎么了?
编译和执行输出将如下所示:

“我的工会必须接受 3 个变量”是什么意思?
没有
union同时存在三个变量。一次只union存在一个字段,您只能初始化您选择的一个字段。未标记的初始化程序将引用您的第一个字段union。想要union使用另一个活动字段创建 - 初始化时使用标签但无论如何,你只能初始化一个字段
union。