我知道在Unix / Linux中,long
大小为64位。
但是当在Windows(x64)下使用相同时,long
总是32位。
是否有任何变通方法/库可以在C中使用更大的整数?
答案 0 :(得分:5)
在C99下,您有两种可能性
long long
,因为它必须至少为64位int64_t
int_least64_t
或stdint.h
在第二种方法中,您可能会发现与inttypes.h
结合使用很有用,后者增加了可移植格式和转换功能,但请注意,托管和独立实现都需要stdint.h
,{{ 1}}仅在托管实现中需要。
此外,在inttypes.h
中确切定义了哪些类型在某些情况下是实现定义的,但如果定义了类型,则必须存在有符号和无符号版本。