c - 如何在 C 中将 union 值写入数组元素?

标签 c arrays data-structures unions

我有一个这样的 union -

union
{
  int a : 1 ;
  int b : 1 ;
  int c : 1 ;
} Byte1;

我正在向 union 成员写“对”或“错”。

Byte1.a = x>0;
Byte1.b = y>0;
Byte1.c = z>0;

我需要写入数组元素的 union 的全部内容

int array[8];
array[7] = Byte1;

但这会引发错误 - `从类型“union”分配给类型“int”时出现不兼容的类型

如何在 C 中将 union 分配给数组元素?

最佳答案

正如你所说

Whole content of union I need to write to an array element int array[7] = Byte1;

但是您可以定义具有多个成员的 union ,但在任何给定时间只有一个成员可以包含值。因此不可能存储整个容器。在数组中仅存储一个必需值。或者你可以这样做

array[7] = Byte1.a;

关于c - 如何在 C 中将 union 值写入数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559319/

相关文章:

c - 从 C 中的多维数组中获取列的有效方法是什么?

java - 获取JTextField文本并实时显示在JTextarea上

c# - 在期望运行重复值时压缩列表,同时保持索引查找

c - 从 C 中的 MMAP 中删除空格

c - 为什么这个程序会产生运行时错误?

c - 在 printf 中使用 (+ve integer) + "some string "?

c++ - 如何创建一个函数,仅通过更改链接来交换单向链表中的两个相邻元素?

c - 当函数有 void* 参数时如何在函数中传递参数?

glibc可以编译成一个目标文件吗

android - 如何为 Android shell 构建可执行文件