可以找到char数据类型以8字节表示的体系结构,因此64位,与long long相同,同时标准要求绑定CHAR_MIN和CHAR_MAX --参见Standard ISO 9899中的5.2.4.2.1 Sizes of integer types <limits.h>。
我不明白为什么这些体系结构选择表示char所以,以及它如何在这么大的空间上表示char值。那么在这种情况下char值是如何表示的呢?
一直都是sizeof(char)=1。我的问题是,sizeof(long long)和sizeof(int)在这种体系结构中的价值是什么?
发布于 2017-10-04 07:47:22
可以找到char数据类型以8个字节表示的体系结构。
不是的。这是因为char被定义为一个字节*)。但是一个字节不一定有8位。这就是为什么八位这个词有时被用来指一个8位的单位。有些体系结构每字节使用8位以上,但我怀疑有64位字节的架构,尽管理论上这是可能的。
另一件需要考虑的事情是,char (与许多其他整数类型相反)不允许有填充位,所以如果您找到了一个64位char的体系结构,这意味着CHAR_MIN和CHAR_MAX将是“非常大的”;)
*)事实上,字节被定义为用来表示编码字符的内存单位,通常也是系统最小的可寻址单位。8位是常见的,维基百科文章提到的字节大小最多可达48位。这可能不是最好的源,但仍然不太可能找到64位字节。
https://stackoverflow.com/questions/46559283
复制相似问题