问题描述
“字符文字可以隐式转换为 C++ 程序所在机器的字符集中的整数值”---来自 Bjarne Stroustrup 的“C++ 编程语言”一书。第四版第 143 页
物理机怎么会有自己的字符编码方案?我认为它取决于软件来强制执行给定的编码方案,然后计算机的物理特性只是将其视为原始字节。有人能解释一下他所说的“机器的字符集”是什么意思吗?
第 144 页接着说“对字符使用任何数字符号会使程序在具有不同字符集的机器之间不可移植”。
解决方法
在某些时候,像键盘这样的“物理机器”需要在二进制代码和人类可读的字符之间具有内置的对应关系。当 I/O 设备更加物理时,这种对应关系更加具体,但它肯定仍然存在。除此之外,操作系统通常会强加这样的对应关系以允许互操作性;您是否认为操作系统是“机器”的一部分是一个没有明确答案的语义问题,但就像 C++ 这样的语言标准而言,托管实现的“执行环境”某些包括键盘、显示器、持久性存储,以及将它们联系在一起的操作系统粘合剂。