相关疑难解决方法(0)

标准委员会关心的异域架构

我知道C和C++标准留下了语言实现的许多方面 - 仅仅因为如果存在具有其他特征的体系结构,那么为它编写符合标准的编译器是非常困难或不可能的.

我知道40年前任何电脑都有自己独特的规格.但是,我不知道今天使用的任何架构:

  • CHAR_BIT != 8
  • signed 不是两个补充(我听说Java有这个问题).
  • 浮点不符合IEEE 754(编辑:我的意思是"不是IEEE 754二进制编码").

我问的原因是我经常向人们解释C++不强制要求任何其他低级方面如固定大小的类型.这很好,因为与其他语言不同,它使你的代码在正确使用时可以移植(编辑:因为它可以移植到更多架构而不需要模拟机器的低级方面,例如符号+幅度架构上的二进制补码算法) .但我感到很难过,我自己也无法指出任何特定的架构.

所以问题是:哪些架构具有上述属性?

uint*_ts是可选的.

c c++ architecture

149
推荐指数
7
解决办法
1万
查看次数

为什么int在64位编译器上通常是32位?

为什么int64位编译器通常是32位?当我开始编程时,我被教过int通常与底层架构的宽度相同.我同意这也是有道理的,我发现未指定的宽度整数与底层平台一样宽是合乎逻辑的(除非我们说的是8或16位机器,这样的小范围int几乎不适用).

后来我int在大多数64位平台上学到的通常是32位.所以我想知道这是什么原因.对于存储数据,我更喜欢明确指定数据类型的宽度,因此这留下了通用用法int,这不会提供任何性能优势,至少在我的系统上我对32位和64位整数具有相同的性能.这样就留下了二进制内存占用空间,虽然不是很多,但会略有减少.

c++ compiler-construction int platform sizeof

31
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×2

architecture ×1

c ×1

compiler-construction ×1

int ×1

platform ×1

sizeof ×1