c++ - 字节真的是最小可寻址单位吗?

标签 c++ c language-lawyer standards memory-model

C11 标准第 3.6 节将“字节”定义为“数据存储的可寻址单元...以保存...字符”。

C++11 标准第 1.7 节将“字节”定义为“C++ 内存模型中的基本存储单元...包含...字符”。

这两个定义都没有说“字节”是最小可寻址单元。这是因为标准有意从特定机器中抽象出来吗?您能否提供一个真实的机器示例,其中 C/C++ 编译器决定让“字节”长于/短于最小可寻址单元?

最佳答案

字节是严格符合 C 代码的最小可寻址单元。 C 实现执行程序的机器是否支持寻址较小的单元与此无关; C 实现必须呈现这样一种 View ,其中字节是严格符合 C 代码的最小可寻址单元。

C 实现可以支持寻址较小的单元作为扩展,例如简单地通过定义 C 标准未定义的某些指针操作的结果。

关于c++ - 字节真的是最小可寻址单位吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60241538/

相关文章:

c++ - 可以将变量重新声明为推断为相同类型的 auto 吗?

c++ - mongodb - 执行子查询

c++ - delete 一定是析构函数中的最后一条语句吗?

我可以将 native 原始类型转换为 JNI 原始类型而不用担心字节顺序吗?

c - 获取一系列已排序的小写字母

c++ - 是什么让 enum -> int 比 enum -> unsigned 转换更好?

c++ - 调试/跟踪嵌入式 sql

c++ - 仅在基于范围的循环中迭代奇数(偶数)元素

c - C中局部常量的存储

c++ - 在默认初始化程序 gcc 与 clang 中使用 lambda