c++ - 为什么在所有数据类型中 int 都依赖于操作系统或编译器

标签 c++ operating-system

<分区>

我想知道,在 C/C++ 中通常可用的所有数据类型中,为什么其中一些依赖于操作系统或编译器?

这是否有任何合乎逻辑的原因,还是只是设计使然?

最佳答案

是的。因为 C/C++ 运行在许多不同的机器架构上。

因此 int 被定义为机器的“自然大小”——这让编译器生成可以在该机器上运行良好的代码。

在现代机器上,通常是 32 位或 64 位。在旧机器上,它是 16 位。 在某些机器上(您可以查一下)它是 24 位或 36 位。

C 标准在定义这些类型时非常谨慎。 它需要一些东西(比如“long 不能小于 int”),同时将其他东西留给实现。

关于c++ - 为什么在所有数据类型中 int 都依赖于操作系统或编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867595/

相关文章:

windows - Windows 任务管理器中的 "VM Size"是什么意思?

c - 获取系统调用ID并将其存储在.txt文件中(LINUX)

c++ - 自定义内存管理器中的碎片化

c++ - C++中的通用迭代器

c++ - 我如何阻止这些 if else 语句复合?

sockets - 'EAGAIN' 或 'EWOULDBLOCK' 之间的区别

c# - 用于检索基础类型的空类

c++ - 如何用QAbstractItemDelegate的画图在QListVIew的单元格中心设置QRect?

windows - 如何确定进程是否处于死锁状态或正在等待 I/O

memory-management - 操作系统通常如何管理内核内存和页面处理?