我知道 C/C++ 标准只保证每个字符最少 8 位,理论上 9/16/42/其他任何东西都是可能的,因此所有关于编写可移植性的网站代码警告不要假设 8bpc。我的问题是这到底有多“不便携”?
让我解释一下。在我看来,系统分为 3 类:
- 计算机 - 我是指运行 Mac/Linux/Windows/Unix/*nix/posix/whatever 的台式机、笔记本电脑、服务器等(我知道这个列表并不完全正确,但你明白了)。听到
char
不是 exactly 8 位的任何此类系统,我会感到非常惊讶。 (如有错误请指正) - 带有操作系统的设备 - 这包括智能手机和此类嵌入式系统。虽然我不会很惊讶发现这样一个
char
超过 8 位的系统,但迄今为止我还没有听说过(如果我不知道,请再次通知我) - 裸机 - 录像机、微波炉、旧手机等。在这个领域我没有半点经验,所以在这里什么都有可能发生。但是,我真的需要我的代码在我的 Windows 桌面和微波炉之间跨平台吗?我是否有可能拥有两者共有的代码?
底线:是否有常见的(超过 %0.001)平台(在上面的类别 1 和 2 中),其中 char
是 not 8 位?我的上述猜测是真的吗?
最佳答案
关于c++ - 可移植代码 - 每个字符的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600378/