c - C中什么情况下可以使用long int

标签 c int long-integer

在我的机器上,我得到以下结果:

sizeof(long) = 8

sizeof(long int) = 8

在哪里使用long int,为什么不直接使用int

最佳答案

如您的评论所述,您提供的示例与您提出的问题无关。如果您的问题是:

So my question is where to use long int and why not just use long?

...那么答案很简短:使用您选择的任何一个,因为它们是等效的。

这是您提出的问题及其答案:

So my question is where to use long int and why not just use int?

int保证至少能够存储位于 -32767 和 32767 范围内的值。实现可能会做出允许它存储该范围之外的值的决定,但这不是必需的。

long intlong保证至少能够存储位于 -2147483647 和 2147483647 范围内的值。同样,实现可能会做出允许它存储该范围之外的值的决定,但不是必需的。

因此,如果您对开发可移植软件感兴趣,那么使用 int 是有意义的。对于不希望存储超出最小范围(-32767 .. 32767)的值的对象 int .同上 long .

如果您对开发可移植软件不感兴趣,并且只关心自己的实现,请使用最能满足您要求的类型。您可以获得 int 的实现范围通过审查 INT_MININT_MAX来自 <limits.h> , 和 long通过审查 LONG_MINLONG_MAX .

请注意 sizeof由于存在填充位和负零的可能性,整数类型不一定准确反射(reflect)其范围。

关于c - C中什么情况下可以使用long int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15871390/

相关文章:

c - 编辑距离矩阵

java - 尝试将列表转换为数组时出错 []

java - long mod 操作返回 int Java

c# - 使用精度为 18 点的指数和绝对值 C#

c - 在 C 中将数组存储为链表

c - 跳出这个 while 循环

c++ - 使用 WM_CHAR 消息发出键盘输入?

android - 无法访问 onclick 方法中的变量

ios - 如何将 Int 添加到 NSDate 中?

java - LONG RAW 列的 jdbc 类型和 java 类型是什么?