根据C11,什么是“字节”?

时间:2013-04-26 09:04:11

标签: c c11

From the C11 draft standard, Section Chapter 1 Section 3:

3.6
byte :可寻址的数据存储单元,足以容纳基本字符的任何成员 执行环境的集合

注1 可以唯一地表示对象的每个字节的地址

那么,当我得出结论只有字节可寻址的内存架构是标准的目标时,我能正确地解释这个吗?或者我是以不正确的方式阅读它? / p>

3 个答案:

答案 0 :(得分:7)

从技术上讲,你是对的,这确实说一致的C实现必须具有字节可寻址的内存。但是C标准并不要求一个字节只有8位。实现可以将“byte”定义为具有64位,就标准而言,这只是极好的。标准也不要求“字节可寻址”为单个操作,因此只支持64位读取的处理器上的8位字节仍然有效,只要编译器确保执行所需的屏蔽和移位即可得到正确的结果。

答案 1 :(得分:2)

是的,我认为你正在以错误的方式阅读标准。我认为它所说的是(释义):

  

可以包含的最小的可单独寻址的内存单元   基本字符集(...)的成员称为字节

也就是说,标准在其范围内通过术语 byte 定义它的含义,从而拒绝不同标准的相同术语的定义。

答案 2 :(得分:0)

是的,简单地说:
根据标准,字节是可寻址的最小内存位置。