首页 > 后端开发 > C++ > 现代 x86 处理器真的无法存储单个字节吗?

现代 x86 处理器真的无法存储单个字节吗?

DDD
发布: 2024-12-22 13:32:41
原创
998 人浏览过

Can Modern x86 Processors Really Fail to Store a Single Byte?

现代 x86 处理器是否无法将单个字节存储到内存中?

Bjarne Stroustrup 声明之谜:

在Stroustrup的书中,他表明某些现代处理器可能无法存储小于单词的对象。然而,日常编程经验似乎与此相矛盾。我们可以轻松存储字节,如一个设置和打印字节值的简单 C 程序所示。

解决混乱:

Stroustrup 的声明实际上可能指执行字节存储指令时CPU的内部工作原理。某些 CPU 可能会使用原子读取-修改-写入操作来更新包含目标字节的缓存行。然而,这种内部机制对程序员来说是不可见的,并且不会改变字节存储的结果或正确性。

现代硬件的内存模型:

在现代 CPU 中,字节存储是原子的,不会影响相邻字节。这是通过定义硬件如何处理内存操作的明确定义的内存模型来确保的。

字节存储不稳定的神话:

字节存储可能会损坏的想法相邻字节已过时。所有现代(非 DSP)架构,包括 x86,都具有字节存储指令,这些指令在架构上设计为不会干扰相邻字节。

结论:

虽然 Stroustrup 的声明过去可能是准确的,但它不再适用于现代 x86 硬件。字节存储对于 C 编程来说是可靠且基础的。

以上是现代 x86 处理器真的无法存储单个字节吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板