c - 如何有效地将 uint16_t[2N] 转换为 uint32_t[N]?

标签 c arrays embedded

我有一个 6 个数组 uint16_t这实际上是三个 uint32_t ,所有位都按正确的顺序排列。我怎样才能尽可能有效地将前者转换为后者?

数组中的元素数量在编译时是已知的。

最佳答案

大概是这样的:

uint16_t arr16[6];
uint32_t *parr32 = (uint32_t*)(&arr16);

现在您可以使用 parr32[i]引用被覆盖的元素 arr16大批。

关于c - 如何有效地将 uint16_t[2N] 转换为 uint32_t[N]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548647/

相关文章:

c - 如何在结构中逐个成员复制

multithreading - 混合使用 RTOS 和循环执行程序是否有意义?

c - 删除节点,链表不起作用

c - 在C中查找字符数组的保留内存大小

c - 在数组中存储 volatile 字符

javascript - 如何循环遍历数组和一组dom元素并将数组的当前项添加到当前dom元素?

c - freertos 中的堆栈溢出

c - 指导我解决这个困惑(用 C 语言进行 CRC16 的文件验证)

c - 如何声明一个巨大的常量数组

ios - 来自两个字符串数组的 double 组