long和int是这样的吗?

[复制链接]
1133|3
 楼主| keer_zu 发表于 2015-2-13 09:44 | 显示全部楼层 |阅读模式

说法1:
16位系统:long是4字节,int是2字节
32位系统:long是4字节,int是4字节
64位系统:long是8字节,int是4字节

说法2:
long与int:标准只规定long不小于int的长度,int不小于short的长度。

说法3:
16位系统:long是4字节,int是2字节
32位系统:long是4字节,int是4字节
64位系统:long是4字节,int是4字节
birdSTM32 发表于 2015-2-14 15:46 | 显示全部楼层
说法2是标准的,其余的主要是看编译器,不同的编译器会根据“硬件特性”自主选择合适的类型长度。至于数据类型长度跟所运行的系统有没有直接关系就不太清楚了。你可以在“limits.h”中找到相关符号常量的定义,在一些有要求的场合,通常会使用定义明确的库,或者使用类似于_64t的形式明确表示类型长度。
 楼主| keer_zu 发表于 2015-2-14 17:43 | 显示全部楼层
birdSTM32 发表于 2015-2-14 15:46
说法2是标准的,其余的主要是看编译器,不同的编译器会根据“硬件特性”自主选择合适的类型长度。至于数据 ...

说的好。
 楼主| keer_zu 发表于 2015-2-15 09:20 | 显示全部楼层
yyy71cj 发表于 2015-2-14 22:12
我觉得,long的本义应该是比系统位数大的一种整型。也就是说,在16位系统中,int应该是2B,而long应该是4 ...

还有一个long long呢,现在似乎定型了,64位系统和32位系统应该一样吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1488

主题

12949

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部