首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >除了8位字符之外,还有哪些平台可以使用其他字符?

除了8位字符之外,还有哪些平台可以使用其他字符?
EN

Stack Overflow用户
提问于 2010-01-20 08:03:48
回答 5查看 22.5K关注 0票数 142

每隔一段时间,就会有人在网上指出char (aka 'byte') isn't necessarily 8 bits

看起来8位char几乎是通用的。我认为对于主流平台,有必要有一个8位的char,以确保它在市场上的生存能力。

无论是现在还是历史上,哪些平台都使用非8位的char,为什么它们会与“正常”的8位不同?

在编写代码并考虑跨平台支持(例如,对于通用库)时,对于使用非8位char的平台,值得考虑哪些因素

在过去,我遇到过一些‘ve公司的DSP,其char为16位。我认为DSP是一种小众的架构。(话又说回来,当时手工编写的汇编程序轻而易举地击败了现有的C编译器,所以我在那个平台上并没有获得多少使用C的经验。)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-20 09:23:00

在德州仪器的C54x DSP上,char也是16位的,例如在OMAP2中出现的DSP。还有其他具有16位和32位char的DSP。我想我甚至听说过24位DSP,但我不记得是什么了,所以可能是我想象出来的。

另一个考虑因素是POSIX强制使用CHAR_BIT == 8。因此,如果您正在使用POSIX,您可以假定它。如果后来有人需要将您的代码移植到POSIX的近似实现中,恰好有您使用的函数,但char的大小不同,这是他们的厄运。

不过,总的来说,我认为解决这个问题几乎总是比思考它更容易。只需输入CHAR_BIT即可。如果您想要精确的8位类型,请使用int8_t。你的代码将在没有提供实现的情况下编译失败,而不是静默地使用你不想要的大小。至少,如果我遇到了一个我有充分理由假设它的案例,那么我会断言它。

票数 91
EN

Stack Overflow用户

发布于 2010-01-20 09:02:13

看起来你仍然可以在仓库中使用buy an IM6100 (即芯片上的PDP-8 )。这是一个12位的架构。

票数 9
EN

Stack Overflow用户

发布于 2010-01-20 11:18:06

许多数字信号处理器芯片都有16位或32位char。TI例行公事地制造这样的芯片for example

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2098149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档