【问题标题】:What is the difference between long and long int in c? [duplicate]c中的long和long int有什么区别? [复制]
【发布时间】:2022-01-21 02:01:04
【问题描述】:

我知道 integer 的范围是 -2147483648 到 2147483647,long 的范围是 -9223372036854775808 到 9223372036854775807 但是 long 的范围是多少int有吗?

【问题讨论】:

  • longlong int 是一回事。 int 是可选的。
  • 这能回答你的问题吗? Long Vs. Int C/C++ - What's The Point?
  • 当使用 signedunsignedlongshort 中的任何一个时,可以省略 intlonglong int 意思完全一样。
  • “我知道long的范围是-9223372036854775808到9223372036854775807”。仅当 long 为 64 位时。它可以是 32 位。
  • integer has a range of -2147483648 to 2147483647 and a long has the range of -9223372036854775808 to 9223372036854775807 C 和 C++ 标准没有为任何内置类型指定任何特定大小。唯一的要求是int 至少有 16 位,long 至少有 32 位:What does the C++ standard state the size of int, long type to be?

标签: c integer long-integer


【解决方案1】:

我知道一个整数的范围是 -2147483648 到 2147483647

那你就知道错了。标准只说最小值,并且比那些(-32767、32767)低很多。

C 语言对最小和最大整数值有特殊定义。例如int 类型:INT_MIN & INT_MAX。它们在limits.h 头文件中定义。

您还可以使用sizeof 运算符检查您的类型的长度(在char 中)。如果你想知道有多少bits 它有:sizeof(type) * CHAR_BIT

c中long和long int有什么区别?

我们没有区别,因为int 可以省略。 unsigned (unsigned int)、short (short int) 和 long long (long long int) 也是如此。

【讨论】:

  • int 的限制是 [-32767, 32767],而不是 (-32768, 32767),因为 C 和更早的 C++ 允许补码和符号大小格式
  • @phuclv 确实。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2016-08-20
  • 2010-12-27
  • 2011-04-13
  • 2020-09-03
相关资源
最近更新 更多