C语言。在64位系统下int和long有什么区别?应用方面有什么不同

现在咱们的系统不都成32位或者64位了么,long类型在编程中还有什么用呢。而且64位int不都已经超过传统的long型了么
我在编译器上测试了半天也没找到long和int有啥区别。能输出的都能输出,不能的都不能

在64位系统下,int为了与之前的兼容,仍占4字节32位,而long被扩展到了8字节64位。

二者不同包括:
1 占空间不同,这一点之前已经说过了;
2 表达范围不同:
由于占空间不同,long可以表示更大的范围,具体为
int 范围为-2147483648~2147483647;
long的范围为-9223372036854775808 ~ 9223372036854775807;
3 输入输出时使用的格式字符不同。int使用%d,long使用%ld。

在应用上,采用较小优先的原则,如果int的范围足够计算不会溢出,那么就采用int;当int不足计算需要时,采用long。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-17
c书中讲的int和long,大多是按照以前的16位机和32位机为例,在64位机器下,int型的数据范围本身扩展到64位了,按照正常理论,long类型应该是128位,不知道编译器有没有这类设置。

理解他们的意思就行了,不必太执着本回答被提问者和网友采纳
第2个回答  2013-03-17
你用printf("%d %d\n", sizeof(int), sizeof(long));看看有区别吗来自:求助得到的回答
第2个回答  2013-03-17
支持楼上的说法^