#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}がデニス・リッチーの本「ユニオンは最初のメンバーの型の値でのみ初期化できる」に記載されているルールを破り、代わりに2番目の変数を初期化する方法を説明できますか?