“long”和“long int”之间的差异,abs&实验室

时间:2010-07-22 15:04:31

标签: c++ types int long-integer

这可能只是cplusplus.com的符号不一致,但C ++中的“long int”和“long”类型之间有区别吗? cplusplus.com说abs接受“int”和“long”类型的输入,而labs使用“long int”。我认为这基本上是一个错字。如果是这样,那么abs和实验室之间唯一的区别是实验室可以保证返回很长时间吗?

4 个答案:

答案 0 :(得分:13)

longlong int之间没有区别。

我们abs(long)labs(long)(两者都相同)的原因是labs()是C库的残余。 C没有函数重载,因此函数abs()只能采用一种类型(int),而long必须以不同方式调用,因此labs

答案 1 :(得分:1)

他们是一样的。类似于“unsigned”和“unsigned int”。是的,在C ++中,abs()的重载需要很长的参数。 labs()对于C程序员来说是必需的,他们只能使用带有int的abs()函数。 C语言不支持函数重载。

答案 2 :(得分:1)

long intlong的类型相同。 abslabs来自C,其中没有函数重载。 long abs(long)与C ++中的long labs(long)相同。例如,GCC已经

inline long abs(long __i) { return labs(__i); }

答案 3 :(得分:0)

longlong int是等效且可互换的。