首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指针原子的前后递减?

指针原子的前后递减?
EN

Stack Overflow用户
提问于 2011-07-13 02:07:11
回答 3查看 353关注 0票数 2

回到68k的好日子,由于堆栈指针和其他更通用的地址寄存器之间相对通用的关系,前/后指针的递增/递减或多或少都被保证是原子的。由于这种行为显然是一个68k的人工制品,可能无法在替代平台上获得最有效的实现,我假设C规范没有对这些操作的“原子性”做出任何声明,这是正确的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-13 02:14:54

假设C规范没有声明这些操作的“原子性”,这是正确的吗?

是。当前的标准( C99和C89,IIRC)没有关于原子性的声明。这肯定是特定于平台的,而且可能还取决于编译器。

如果我可以问一下,为什么这些操作必须是原子的?

票数 4
EN

Stack Overflow用户

发布于 2011-07-13 02:22:22

C标准完全没有原子操作。不过,有一些是described here内置的GCC,也有一些是C++0X stanard内置的。而且,您始终可以在代码中使用POSIX或其他多线程库或内联汇编程序。

票数 1
EN

Stack Overflow用户

发布于 2011-07-13 02:16:02

除非有明确的文档,否则永远不能保证原子性。在当前的C标准下,这意味着没有可移植代码可以保证原子性--原子操作符必须是特定于平台的。

正如@ninjalj在他的评论中指出的那样,C1x将添加原子运算符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6668920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档