回到 68k 的美好时光,由于堆栈指针和其他更通用的地址寄存器之间相对通用的关系,前/后指针递增/递减或多或少都保证是原子的。由于这种行为显然是 68k 的产物,可能无法在替代平台上获得最有效的实现,因此我假设 C 规范没有声明这些操作的“原子性”是否正确。
最佳答案
would I be correct in assuming that the C specification makes no claims as to the "atomicity" of these operations.
是的。当前标准(C99 和 C89,IIRC)没有对原子性做出任何声明。这绝对是特定于平台的,并且可能也取决于编译器。
如果我可能会问,为什么这些操作必须是原子的?
关于c - 指针的前/后递增是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668920/