我已经使用 C 和 C++ 编程了很长一段时间,回到初学者时代,我开始了解跨平台和系统架构的不同基本数据类型的大小变化。就像在 C++ 中一样,标准规定 int
的大小至少为 2 个字节(或等于或大于 short
...我不完全记住)。我知道它会有所不同,并且随着我们的前进可能会采用更大的尺寸。
我无法观察到的一件事是限定符大小的变化,例如 short
、long
(也许还有 long long
)。它们在不同的编译器和操作系统中是相同的,尽管数据类型的大小在增加,有时与它们的长版本大小相等。
出于好奇,目前有没有这些限定符具有更大容量或只是固定大小的例子?
最佳答案
肯定有例子:我知道系统(不全是现代的)
其中 int
是 16、32、36 和 48 位;我认为有
也有 24 位或 60 位的情况(但那些会
是真正的旧机器),也许还有其他一些值。
我实际上在 int*
是 16 位的机器上工作,
但是 char*
32(但那是很久以前的事了)。
当然,很多这样的机器你不太可能看到
今天,除非你在嵌入式系统或大型机上工作。 (我
想想很多嵌入式处理器仍然有 16 位 int
。)关于
另一方面,即使在日常台式机或笔记本电脑上,
long
可以是 32 位(Windows 和 32 位 Mac 和 Linux))
或 64 位(64 位 Mac 或 Linux)。
关于c++ - 不同平台/系统中限定符大小的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781424/