gpt4 book ai didi

gcc,不同架构上 long int 的宽度

转载 作者:行者123 更新时间:2023-12-04 16:41:27 26 4
gpt4 key购买 nike

在 64 位架构上,long int ,根据 gcc 至少是一个 int64_t .在 32 位上,long int至少是 int32_t .使用 Microsoft 编译器,long始终是 int32_t ,不分32/64位。有没有什么办法:

  • 强制 gcc 在 32 位上将 long 视为 int64_t? (为了便于测试)
  • 强制 gcc 在 64 位上将 long 视为 int32_t? (为了符合 MS 的编译器)。
  • 最佳答案

    不要这样做 - 使用标准类型,例如 int32_t , uint32_t , int64_t , uint64_t等来自 <stdint.h>而不是试图对裸类型做出假设,例如 long int或者试图让编译器按你的意愿行事。

    注意:任何给定平台的 64 位模型(例如大多数 *nix 平台的 LP64、Mac OS X 等)是给定的,因此即使您可以说服编译器使用不同的 64 位模型,您也可能会破坏对系统代码、库等的任何调用。

    关于gcc,不同架构上 long int 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244311/

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