gpt4 book ai didi

c - 如何一次性访问数组的多个元素?

转载 作者:行者123 更新时间:2023-11-30 15:29:10 25 4
gpt4 key购买 nike

我有一个数组uint8_t data[256]。但每个元素都是单字节。我的数据总线是32位长。所以,如果我想访问 32 位,我会这样做:

DATA = data[i] + (data[i + 1] << 8) + (data[i + 2] << 16) + (data[i + 3] << 24);

但这会转化为内存中 4 个单独的读取请求,每个请求一个字节。

如何以单笔交易的形式访问所有 4 个字节?

最佳答案

如果您知道数据的字节顺序(或者如果您不关心),并且您的数据是对齐的(或者有字节寻址过程并且您不关心效率),则可以将数据转换为a uint32_t * 并以 4 字节卡盘访问它,如下所示:

DATA = ((uint32_t *)data)[i/4];

这当然假设i是4的倍数。

关于c - 如何一次性访问数组的多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com