c++ - 不同平台/系统中限定符大小的变化

标签 c++ c

我已经使用 C 和 C++ 编程了很长一段时间,回到初学者时代,我开始了解跨平台和系统架构的不同基本数据类型的大小变化。就像在 C++ 中一样,标准规定 int 的大小至少为 2 个字节(或等于或大于 short...我不完全记住)。我知道它会有所不同,并且随着我们的前进可能会采用更大的尺寸。

我无法观察到的一件事是限定符大小的变化,例如 shortlong(也许还有 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/

相关文章:

c++ - 如何在C++中打印字符数组

c - 64 位 native 类型原子性和内存总线?

c++ - 即使调用 srand() 也没有得到不同的随机值

c++ - 更改 linux 套接字文件权限

c++ - 列出节点指针 'not declared in this scope' ?

c# - 从 C# 客户端向 C 服务器发送消息

更改字符串的大小写

c - 在不知道整数的实际个数的情况下扫描多个整数

C 编程中的字符搜索

c++ - 是否可以从模板化智能指针类型继承类