gpt4 book ai didi

c++ - 原始数据类型的大小

转载 作者:可可西里 更新时间:2023-11-01 15:05:07 26 4
gpt4 key购买 nike

int 这样的原始数据类型的大小究竟取决于什么?

  • 编译器
  • 处理者
  • 开发环境

还是这些或其他因素的组合?
对其原因的解释将非常有帮助。

编辑:很抱歉造成混淆..我想问的是像 int 这样的原始数据类型,而不是关于 POD,我知道 POD 可以包含结构,而结构是一个完全不同的球类游戏,图片中有填充.我已更正问题,此处的编辑说明应确保有关 POD 的答案看起来不相关。

最佳答案

我认为这个问题有两个部分:

  1. 允许原始类型的大小。
    is specified by the C and C++ standards : 这些类型允许它们必须具有的最小值范围,这隐含地为其大小设置了一个下限以位为单位(例如,long 必须至少为 32 位以符合标准)。
    标准没有以字节为单位指定大小,因为 definition of the byte取决于实现,例如char 是字节,但字节大小(CHAR_BIT 宏)可能是 16 位。

  2. 实现定义的实际大小。
    正如其他答案已经指出的那样,这取决于实现:编译器。反过来,编译器的实现又深受目标架构的影响。因此,有两个编译器在相同的操作系统和架构上运行,但具有不同大小的 int 是合理的。您可以做出的唯一假设是标准规定的假设(假设编译器实现了它)。
    可能还有其他 ABI 要求(例如,固定大小的枚举)。

关于c++ - 原始数据类型的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com