#include <stdio.h>
union p
{
int x;
char y;
}
k = {.y = 97};
int main()
{
printf("%d\n", k.y);
return 0;
}
OUTPUT: 97
我遇到了这个问题。众所周知,我们只能初始化 Union 的第一个成员。但是在这里,在初始化的时候,y
变量是通过一些给定的方法来初始化的!
谁能向我解释一下k={ .Y=97}如何违反 Dennis Ritchie 的书“Union can only be initialized with a value of its first member”中所述的规则,而是初始化第二个变量?