Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
机器&x27;s基本字符集 在C++入门书中,在原始内置类型部分是:_C++_Character Encoding_Char - Fatal编程技术网

机器&x27;s基本字符集 在C++入门书中,在原始内置类型部分是:

机器&x27;s基本字符集 在C++入门书中,在原始内置类型部分是:,c++,character-encoding,char,C++,Character Encoding,Char,char保证足够大,可以容纳与机器基本字符集中的字符相对应的数值。也就是说,char与单个机器字节大小相同 此基本字符是指ASCII表吗?本标准不保证基本字符集应为ASCII。事实上,其他字符集已经存在,并且仍然存在于特定的系统上,比如EBCDIC 唯一的保证是 < 1.7 > C++记忆模型[记忆] 1 C++内存模型中的基本存储单元是字节。一个字节至少足够大,可以包含 基本执行字符集(2.3)的任何成员和Unicode UTF-8的八位代码单元 编码形式,由一个连续的位序列组成,其数量由实

char
保证足够大,可以容纳与机器基本字符集中的字符相对应的数值。也就是说,
char
与单个机器字节大小相同


此基本字符是指ASCII表吗?

本标准不保证基本字符集应为ASCII。事实上,其他字符集已经存在,并且仍然存在于特定的系统上,比如EBCDIC

唯一的保证是

< 1.7 > C++记忆模型[记忆]
1 C++内存模型中的基本存储单元是字节。一个字节至少足够大,可以包含 基本执行字符集(2.3)的任何成员和Unicode UTF-8的八位代码单元 编码形式,由一个连续的位序列组成,其数量由实现定义。 最低有效位称为低阶位;最高有效位称为高阶 一点C++程序可用的内存由一个或多个相邻字节序列组成。每一个 字节有一个唯一的地址

1.8 C++对象模型[Obj.Obj] ] BR/>…
5除非是位域(9.6),否则最派生的对象应具有非零大小,并应占据一个或多个空间 字节的存储空间

2.3字符集[lex.charset]
…中0之后的每个字符的值 上述十进制数字列表应比前一个数字的值大一位


< C++ >标准保证了<代码> char < /> >至少8位,并且数字代码具有连续值。所有其他字符集属性都依赖于实现。

可能是。它不必是ASCII码。是的,还有其他的装置,像EBCDICOn,大多数现代电脑都有。其他计算机上也有其他字符集,但它们越来越稀少和专业化。“机器的基本字符集”实际上没有任何意义。它实际上是由C++编译器/库供应商提供的。请继续阅读并注意“源字符集”和“执行字符集”这两个术语。由于“机器”没有字符集,字符集是一种工具或语言的概念,就像指针、位字段、堆和其他许多东西一样。定义已经过时了。机器过去有硬接线字符光栅显示器,光栅代码实际上是“字符集”。这在现在很常见,尽管文件系统通常仍然有编码(16位Unicode或ascii)。字符几乎总是8位,即使在16位unicode Windows系统上也是如此。次要说明:§1.7¨1保证一个字节至少为8位。§1.8¨5保证“最派生对象”至少占用一个字节。与此相关的还有§1.8¨4,其中指出非类别类型的对象(如
char
)包含在“最派生对象”的定义中。然而,我不确定§2.3的相关性。