#include <stdio.h>
union p
{
int x;
char y;
}
k = {.y = 97};
int main()
{
printf("%d\n", k.y);
return 0;
}
OUTPUT: 97
Я столкнулся с этим Вопросом. Как мы знаем, мы можем только инициализировать первого члена Союза. Но в этом, во время инициализации, переменная y
инициализируется с помощью некоторого заданного метода!
Может ли кто-нибудь объяснить это мне, как k = {.Y = 97} нарушает правило, указанное в книге Денниса Ритчи "Союз может быть инициализирован только значением типа его первого члена" и вместо инициализации второй переменной?