【发布时间】:2011-07-12 18:07:10
【问题描述】:
回到过去 68k 的美好时光,由于堆栈指针和其他更通用的地址寄存器之间的相对一般的关系,前后指针递增/递减都或多或少保证是原子的。由于这种行为显然是 68k 人工制品,可能无法在替代平台上获得最有效的实现,因此假设 C 规范没有声明这些操作的“原子性”是否正确。
【问题讨论】:
-
没有任何 C 规范对 any 操作的原子性做出任何声明。
-
@Nemo:C1x 保证了新原子操作的原子性。
-
我不认为 C 本身有任何保证,不。 (至少如果指针增量是指 ++ptr 之类的东西,至少不会。)但是,在许多情况下,实际结果确实是原子的。相关讨论见stackoverflow.com/questions/879077/…。
-
也许你会发现这个答案很有帮助stackoverflow.com/questions/879077/…
-
@shelleybutterfly 和 Fedor:这里有很多很棒的信息;感谢您的链接。
标签: c