我正在为Cortex M0 (ARM) CPU编写代码,并且32位读/写是原子性的。那么我想知道当我读/写8位/16位变量时,它们是否也保证是原子性的?我的直觉告诉我是,因为它们内部对齐为32位节,所以CPU不需要两个单独的指令来读取/写入它们。
但是我也在紧凑型结构中存储了大量变量以节省内存,在这种情况下,变量可能未对齐到32位边界,因此16位值的每一半可能在不同的节中。
因此,在使用紧凑型结构时,我失去了原子操作,这是真的吗?
但是我也在紧凑型结构中存储了大量变量以节省内存,在这种情况下,变量可能未对齐到32位边界,因此16位值的每一半可能在不同的节中。
因此,在使用紧凑型结构时,我失去了原子操作,这是真的吗?