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