c - 根据 C11,什么是 "byte"?

标签 c c11

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

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

注意 1 可以唯一地表达对象的每个单独字节的地址

那么,当我得出标准仅针对字节可寻址内存架构的结论时,我是否正确地解释了这一点?还是我以错误的方式阅读它?

最佳答案

从技术上讲,您是对的,这确实表明符合标准的 C 实现必须具有字节可寻址内存。但是 C 标准不要求一个字节只有八位。一个实现可以将“byte”定义为 64 位,就标准而言,这已经很完美了。该标准也不要求“字节可寻址”是一个单一的操作,因此在仅支持 64 位读取的处理器上的 8 位字节仍然有效,只要编译器确保执行所需的屏蔽和移位以获得正确的结果。

关于c - 根据 C11,什么是 "byte"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232574/

相关文章:

c - 我无法理解我们看到的字符之间的抽象以及计算机如何处理它们

c - 为什么我们在 for 循环中使用有符号整数?

c - 如何参与 C 标准化进程?

c - 这是检查可变宏参数列表是否为空的有效方法吗?

c - 快速问题,为什么 scanf_s 在运行时抛出异常?我很困扰

c - 匿名结构

c - 发布大页面的正确方法?

c - 为什么我在一个函数中分配了一个指针内存,但它也是NULL?

c - "Undefined symbols for architecture x86_64:"在c中是什么意思?

c - 如何为嵌入在结构中的 union 的特定成员可移植地分配空间