C11标准的3.6节将“字节”定义为“用于保存...字符的数据存储的可寻址单位”。
C++ 11标准的1.7节将“字节”定义为“C++内存模型中的基本存储单元……以包含……字符”。
两种定义都没有说“字节”是最小的可寻址单位。这是因为标准有意要从特定计算机中抽象吗?您能否提供一个真实的机器示例,其中C / C++编译器被确定为“字节”长于或短于最小可寻址单元?
最佳答案
字节是严格符合C代码的最小可寻址单元。与C实现在其上执行程序的机器是否支持寻址较小的单元无关。 C实现必须提供一个 View ,其中字节是严格符合C代码的最小可寻址单元。
C实现可以支持将较小的单元作为扩展寻址,例如仅通过定义某些指针操作的结果即可,否则C标准不会对此进行定义。