gpt4 book ai didi

c++ - 了解固定宽度的整数类型

转载 作者:太空狗 更新时间:2023-10-29 21:11:13 24 4
gpt4 key购买 nike

我理解固定宽度类型的概念,但我对引用资料提供的解释有点困惑:

signed integer type with width of exactly 8, 16, 32 and 64 bits respectively with no padding bits and using 2's complement for negative values (provided only if the implementation directly supports the type)

据我所知,如果我能够编译一个应用程序,那么一切都应该在能够运行它的平台上运行。我的问题是:

  1. 如果某些平台不支持这些类型怎么办?应用程序是否使用了某种对齐方式,或者根本不可以?
  2. 如果我们保证 sizeof(char) 在每个平台上都是一个字节,而不管字节大小在平台之间可能不同,这是否意味着 int8_tuint8_t 保证随处可用?

最佳答案

如果实现不提供您使用的类型,它将不存在并且您的代码将无法编译。在这种情况下将需要手动移植。

关于您的第二个问题:虽然我们知道 sizeof(char) == 1,但不能保证 char 恰好是八位;它可以拥有更多。如果是这样,int8_t 和 friend 将不存在。

请注意,如果您不需要知道确切的宽度,还有其他类型可能会为您的用例提供足够的保证,例如 int_least8_tint_fast8_t。这些为实现留下了更多的自由,使它们更具可移植性。

但是,如果您的目标平台上不存在常见的整数类型,您应该提前知道这一点;因此,不值得花太多时间来解决那些最可能不相关的问题。这些平台相对奇特。

关于c++ - 了解固定宽度的整数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173366/

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