c++ - 为什么在 64 位机器上的 c++ 中 int 的大小不是 8 字节。还有任何版本的 gcc 是否支持 8 字节 int?
问题描述
为什么 c++ 中的 int 值不能有 8 字节大小?我知道在 Linux 和 Mac 中 long 是 8 个字节。还有任何编译器的 int 大小为 8 吗?
我尝试搜索大小为 8 字节的 int 的 GCC 编译器,但找不到与之相关的任何内容。
解决方案
没有什么可以阻止编译器使用 8 字节int
,除了它可能会破坏大量现有代码。
在过去 20 年左右的时间里,人们假设 anint
是 4 字节长(至少在 x86 和 amd64 CPU 上)。虽然在 C++ 标准下更改 an 的大小int
是完全合法的,但它也会破坏大量依赖 an 大小的旧代码,int
例如位旋转。破坏人们的代码并不是说服他们应该继续使用您的编译器的好方法,因此编译器制造商倾向于使编译器的行为符合人们的期望,即使语言标准没有强制要求这种行为。
推荐阅读
- python - 如何从自定义输入词典中获取相似词到gensim中的向量
- javascript - 使用mapbox gl和三个js在地图上的单个图层中渲染多个gltf 3D模型
- bokeh - 基于具有 Bokeh 的 Networkx 节点属性值的滑块
- svg - 如何为区域着色,即两个对象的交集?
- python - 创建 Choropleth 地图时出错,Json 解码错误
- python - 试图从网页监控产品,没有按预期工作
- plugins - 使用 cypress-plugin-snapshots 返回 .toMatchSnapshot 不是函数
- arrays - 如何从数组 swift 中获取第四个值
- react-native - 如何在 ReactNative 中模拟子 textInput 的自动对焦道具
- javascript - AppDelegate.m 文件中的#if DEBUG 条件从未被捕获