gpt4 book ai didi

打包结构中的变量可以原子读取吗?

转载 作者:行者123 更新时间:2023-12-04 12:57:23 24 4
gpt4 key购买 nike

我正在为 Cortex M0 (ARM) CPU 编写代码,32 位读/写是原子的。现在我想知道当我读/写 8bit/16bit 变量时,它们是否也保证是原子的?我的直觉说是的,因为它们在内部与 32 位部分对齐,所以 CPU 不可能需要两条单独的指令来读/写它们。

但我也碰巧在压缩结构中存储了很多变量以节省内存,并且变量可能没有在 32 位边界上对齐,因此 16 位值的每一半都可能位于不同的部分.

那么当我使用压缩结构时我丢失了原子操作是真的吗?

最佳答案

使用打包结构,您将永远不会在与内存单元边界重叠的字段上进行读/写原子操作。这意味着只有 8 位操作保证是原子的,否则它取决于你的字段的内存对齐。

关于打包结构中的变量可以原子读取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662135/

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