关于long和int

发布于 2022-09-18 19:00:23 字数 255 浏览 13 评论 0

我认为:
int数据类型是平台相关的,针对32 bit CPU平台的Compiler会分配32 bit存储空间,针对64 bit CPU平台的Compiler会分配64 bit存储空间。
long类型是平台无关的,无符号的,固定分配4字节,32 bit。
long long类型则是long的2倍,也是无符号的,64 bit,8字节。
不知道理解对不对。

另外,我不清楚long int与long和int是什么关系,请知道的指教,谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

说好的呢 2022-09-25 19:00:23

我在x86_64上测试出来和你说的刚好相反,int是32bit,而long是64bit。

晌融 2022-09-25 19:00:23

原帖由 Cyberman.Wu 于 2009/3/20 12:55 发表
我在x86_64上测试出来和你说的刚好相反,int是32bit,而long是64bit。

同意

独闯女儿国 2022-09-25 19:00:23

另外,我不清楚long int与long和int是什么关系,请知道的指教,

long就是long int.

故事灯 2022-09-25 19:00:23

sizeof print 就知道了,再知道?google 那几个标准去吧。

欢你一世 2022-09-25 19:00:23

C标准只规定sizeof(int)≯sizeof(long)

叹沉浮 2022-09-25 19:00:23

以前的时候,int一直是机器字长,但自从64位出来之后,惯例就不再是惯例了

笑饮青盏花 2022-09-25 19:00:23

即使是以前,int也不一定是CPU字长。譬如在8位机时代,int一般是16位,因为8位太不实用。后来还出现过专用于开关式控制的一位CPU,它的int一般是8位。16位CPU,int也不一定是16位,有的早期单片机C编译器int是8位,因为那时的外围芯片多数是8位。
因此,归纳起来:
1)C标准没有规定int的长度,只是规定它不得长于long。
2)首先取决于CPU字长。
3)其次取决于开发方向。

素年丶 2022-09-25 19:00:23

其实这个该死的东西叫 ABI

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文