#include <stdio.h>
union p
{
int x;
char y;
}
k = {.y = 97};
int main()
{
printf("%d\n", k.y);
return 0;
}
OUTPUT: 97
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题.我们知道我们只能初始化Union的第一个成员.但在此,在初始化时,y
变量通过一些给定的方法初始化!
任何人都可以向我解释一下k = {.Y = 97}是如何破坏Dennis Ritchie的书中所说的规则"联盟只能用其第一个成员的类型初始化"并初始化第二个变量?
gko*_*s90 15
K&R是一本很棒的书,但它已经很老了.在C99你可以这样做.
在同一示例中使用指定的初始值设定项,以下内容初始化第二个union成员年龄:
union {
char birthday[9];
int age;
float weight;
} people = { .age = 14 };
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
387 次 |
最近记录: |