在Windows中具有64位的长/ Int

Man*_*eli 1 c windows gcc

我知道在Unix/Linux中long大小是64位.

但是当在windows(x64)下使用相同时,long总是32位.

是否有任何变通方法/库可以在C中使用更大的整数

Fil*_*ves 5

在C99下,您有两种可能性

  • 使用long long,因为它必须至少为64位
  • 如果可用,请使用int64_tint_least64_t来自stdint.h

在第二种方法中,您可能会发现它很有用inttypes.h,它增加了可移植格式和转换函数,但请注意,虽然stdint.h在托管和独立实现中都需要,但inttypes.h只有在托管实现中才需要.

此外,stdint.h在某些情况下,确切定义了哪些类型是实现定义的,但如果定义了类型,则必须存在有符号和无符号版本.