哪个更受欢迎:'long int'或'long'

时间:2014-06-26 15:00:01

标签: c int long-integer

在C中定义长整数的首选方法是什么?是否存在兼容性问题?

long int ln;

long ln;

5 个答案:

答案 0 :(得分:5)

没有"兼容性问题",没有。它们是完全相同的类型,long是类型名称long int的简短形式。就像shortshort int的简短形式一样。

它当然非常主观,但我认为大多数C程序员只使用long

答案 1 :(得分:3)

long和long int之间没有区别。你可以使用你想要的。我宁愿使用long int来记住你所做的事情。

答案 2 :(得分:2)

除了@ unwind的答案外,还有long double,当然还有long long int。 Long可能在其他罕见的实现角落中有用(long char?)但总是一个修饰符,但如果没有要修改的内容,则会假设int

C的语法传统上暗示int在许多地方:

myfunction (i, j)
{
     return 6 * i + j;
}

1979年在V6 Unix上的实现,myfunction()将被解释为返回类型int,除非进一步声明,否则这两个参数也将被假定为int

float myfunction (i, j)
 long i;  float j;
{
     return 6 * i + j;
}

答案 3 :(得分:2)

您忘了提及signed longsigned long int:)

根据C标准

  

5每个以逗号分隔的多重集都指定相同的类型,   除了对于位域,它是实现定义的是否   specifier int指定与signed int或相同类型相同的类型   as unsigned int

因此,仅针对位域,例如intsigned int

之间存在差异

考虑到您可以通过以下方式编写

const signed const long const int ln;

相当于

const long ln;

答案 4 :(得分:2)

如果您所在的公司有编码惯例,并且包含对此的要求,则应遵循惯例。但是,如果没有关于如何申报long int的规则,请选择最适合您的内容。

我建议您使用stdint中定义的类型。例如,long int可能等同于int32_t。在很多情况下,了解您正在使用的变量的位宽非常有用。