c - 指针的前/后递增是原子的吗?

标签 c

回到 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/

相关文章:

mysql - 使用 C libmysqlclient 无法解释的 MySQL 行为

c - 如何检查 optarg 的长度以及它是否为数字

c++ - OpenCV cvtColor() 改变了我的图像尺寸并且有错误的颜色

Makefile 中找不到命令错误

应用程序的 C Linux 带宽限制

php - PHP 中的 scandir() 太慢了

c - "undefined reference to strerror_r"与 OpenSSL-1.1.0e 和 MinGW

c - "reclaimation of storage"对于线程的 pthread_join() 和 pthread_detach() 是什么意思?

c++ - 将一维, "flattened"索引转换为N维数组的N维 vector 索引

c - 将字符串添加到数组,正在重新分配的指针未分配