我一直读这样的句子
不要依赖 1 个字节就是 8 位大小
use CHAR_BIT
而不是 8 作为常量在位和字节之间转换
et cetera. What real life systems are there today, where this holds true?
(I'm not sure if there are differences between C and C++ regarding this, or if it's actually language agnostic. Please retag if neccessary.)
在较旧的机器上,小于 8 位的代码相当常见,但其中大多数已经消失多年。
C 和 C++ 强制要求minimum8位的char
,至少可以追溯到 C89 标准。 [编辑:例如,C90,§5.2.4.2.1 要求CHAR_BIT
>= 8 且UCHAR_MAX
>= 255。C89 使用不同的节号(Ibelieve这将是 §2.2.4.2.1),但内容相同]。他们将“char”和“byte”视为本质上同义的[编辑:例如,CHAR_BIT
描述为:“不是位域(字节)的最小对象的位数”。]
然而,当前机器(主要是 DSP)的最小类型大于 8 位——最小 12 位、14 位甚至 16 位是相当常见的。 Windows CE 的做法大致相同:它的最小类型(至少对于 Microsoft 的编译器而言)是 16 位。他们是这样not然而,治疗一个char
作为 16 位——相反,它们采用(不符合标准的)方法,即简单地不支持名为的类型char
at all.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)