c-long的长度是8个字节,但我得到了整数溢出



假设

  long long b = 5*1024*1024*1024; // 5 gigs, small enough for 64 bits
  printf ("%lun",sizeof(long long)); // prints 8 (bytes) = 64 bits

但编译器抱怨道:

  warning: integer overflow in expression [-Woverflow]

为什么它会溢出,我错过了什么?

因为右边的数字的类型是int,而不是long long,所以在表达式中执行int运算,导致溢出。

如果您将LL添加到其中一个,它将促进所有这些功能。

相关内容

  • 没有找到相关文章

最新更新