哪些平台除了8位字符之外还有别的东西?

哪些平台除了8位字符之外还有别的东西?

不时有人这样指出char(又称‘字节’)不一定是8位.

好像是8位char几乎是普遍的。我认为对于主流平台来说,有必要有一个8位。char以确保其在市场上的生存能力。

现在和历史上,哪些平台使用char这不是8位,为什么他们会区别于“正常”8位呢?

在编写代码和考虑跨平台支持(例如通用库)时,对于非8位平台来说,值得考虑的是什么?char?

在过去,我遇到过一些模拟设备DSPchar是16位。我认为DSP是一种利基体系结构。(再说一遍,当时手工编码的汇编程序很容易就击败了可用的C编译器,所以我在那个平台上并没有真正获得使用C的经验。)


千万里不及你
浏览 445回答 3
3回答

人到中年有点甜

char也是德州仪器C54x DSP上的16位,例如在OMAP 2中出现。还有其他带有16位和32位的dsp。char..我想我甚至听说过24位数字信号处理器,但我不记得是什么,所以可能是我想象出来的。另一个考虑是POSIX的任务CHAR_BIT == 8..因此,如果您使用的是POSIX,您可以假设它。如果以后有人需要将您的代码移植到近似于POSIX的实现,那么您所使用的函数恰好是不同大小的函数。char那是他们的坏运气。不过,总的来说,我认为围绕这一问题的工作几乎总是比思考容易得多。只是打字CHAR_BIT..如果您想要精确的8位类型,请使用int8_t..您的代码将无法在不提供实现的实现上编译,而不是默默地使用您意想不到的大小。至少,如果我遇到了一个我有充分理由去假设的案例,我就会断言它。

慕妹3146593

在编写代码和考虑跨平台支持(例如通用库)时,对于具有非8位字符的平台,值得考虑的是什么?与其说它“值得考虑”,倒不如说它是按照规则来玩的。例如,在C+中,标准说所有字节都“至少”有8位。如果您的代码假设字节正好有8位,那么您就违反了标准。这听起来可能有点傻了-“当然了所有的字节都有8位!“,我听到你这么说,但是很多非常聪明的人都依赖那些无法保证的假设,然后一切都破裂了。历史上充满了这样的例子。例如,大多数90年代早期的开发人员都认为,一个特定的非OP CPU定时延迟需要固定的时钟时间,因为大多数消费者CPU的功率大致相等。不幸的是,计算机变得更快了。这催生了带有“涡轮”按钮的盒子的兴起-具有讽刺意味的是,其目的是减缓计算机的速度,以便使用延时技术的游戏能够以合理的速度播放。一位评论者问道,在标准中,char必须至少有8位。在部分5.2.4.2.1..本节定义CHAR_BIT最小可寻址实体中的位数,默认值为8。它还表示:它们的实现定义值应等于或大于所显示的值(绝对值),并具有相同的符号。因此,任何等于8或更高的数字都适合被实现替换为CHAR_BIT.
打开App,查看更多内容
随时随地看视频慕课网APP