c - int、short、long、long long 的大小?
问题描述
根据C99 §5.2.4.2.1-1,以下类型的大小取决于实现。所说的是它们的大小等于或大于这些值:
short >= 8 bits
int >= 16 bits
long >= 32 bits
long long >= 64 bits
我一直听说它long
是 always 32-bits
,并且它严格等同于int32_t
which 看起来是错误的。
什么是真的?
解决方案
在我的计算机上,Linux 中的 long 是 64 位。
Windows 是唯一在 64 位模式下使用 32 位 long 的主要平台,这正是因为在现有代码中普遍存在错误假设。这使得在 Windows 上更改 long 的大小变得困难,因此在 64 位 x86 处理器上,long 在 Windows 中仍然是 32 位,以保持各种现有代码和定义兼容。
推荐阅读
- reactjs - 尝试在Formik中更改onChange时无法输入
- java - List.stream 映射非静态方法不能从静态上下文中引用
- javascript - SyntaxError:无法在模块 Typescript 错误之外使用 import 语句
- discord - 机器人旨在随机标记服务器中的某人仅标记自身
- javascript - JS全局变量在函数范围之外没有改变
- node.js - MERN stack 如何将联系人添加到组?
- python - 无法使用 Python 3.9 转换 mp3
- graph - 在邻接表中计算入度的复杂度是O(|E|)?
- windows - 自定义屏幕保护程序 - windows
- android - Firebase StreamBuilder 错误