c - union类型变量初始化任意值时,如果该值被初始化到每个union元素?

标签 c

typedef union jkk
{
    int a;
    char b[10];
    float c;
} y;

int main(){
    y instance_of_y = {100};
}

在下面的一段程序中 union y 初始化了 y={100} 然后将它分配给 a , b 和 c 的所有元素还是只分配给第一个 a。

最佳答案

使用 {100} 时,成员 aactive,值为 100。这是因为 brace initialization 初始化第一个 union 成员。

您应该将 union 的其他成员视为非事件和未初始化的。

关于c - union类型变量初始化任意值时,如果该值被初始化到每个union元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43614817/

相关文章:

c - 如何处理像这些寄存器这样的结构中的所有字段?

c - 如何在 Tensorflow Lite(实验 C API)中创建输入张量并与解释器一起使用?

Java - 如何管理 JNI C 代码中的内存?

java - 类型安全的编程语言..?

c - 在解释器创建方面需要一些指导

C - 从字符串 2 中替换字符串 1 中最常见到最不常见的字母

c - 使用 getline 将字符串读取到指针数组中 (C)

c - 结构初始化失败

java - JNI native 函数内的自定义内存分配

c - valgrind memcheck 分配字符串内存时出错