相关疑难解决方法(0)

不能将-2147483648分配给long long类型的变量

我正在编译下面的代码,由于某种原因,我无法将-2147483648分配给8字节长且已签名的变量.

long long x = -2147483648;
Run Code Online (Sandbox Code Playgroud)

当我跨过这一行时,x的值是2147483648,MS Visual Studio中的'Watch'窗口显示x的类型是__int64.sizeof(x)也返回8.

根据limit.h,签署的long long的限制是:

#define LLONG_MAX     9223372036854775807i64       /* maximum signed long long int value */
#define LLONG_MIN   (-9223372036854775807i64 - 1)  /* minimum signed long long int value */
Run Code Online (Sandbox Code Playgroud)

和:

/* minimum signed 64 bit value */
#define _I64_MIN    (-9223372036854775807i64 - 1)
/* maximum signed 64 bit value */
#define _I64_MAX      9223372036854775807i64
Run Code Online (Sandbox Code Playgroud)

我只是不明白!

有人可以对此有所了解吗?

c

5
推荐指数
1
解决办法
886
查看次数

标签 统计

c ×1