首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用stdint.h具有可移植性的优势?

如何使用stdint.h具有可移植性的优势?
EN

Stack Overflow用户
提问于 2022-11-15 16:58:36
回答 2查看 59关注 0票数 0

我读到stdint.h是用于可移植性的,但我很困惑。

如果我在32位系统上编写程序,uint32_t (无符号int)是4字节.

但是当该程序在16位系统上运行时,int为2字节,uint32_t (无符号int)为2字节。

我认为在这种情况下不能保证可移植性。有什么我理解错的地方吗?

EN

回答 2

Stack Overflow用户

发布于 2022-11-15 17:04:34

,有什么事情我理解错了吗?

是。

类型uint32_t始终是一个无符号整数类型,只有32位,没有一个是填充位。在许多与unsigned int类型相对应的现代系统上,它可能对应于一种不同的类型,例如unsigned long int。在没有具有正确属性的类型的系统上,根本没有定义它。

uint32_t和来自stdint.h的其他显式宽度数据类型的要点正是要解决您提出的问题,即(例如) unsigned int在不同的机器上有不同的大小。

票数 6
EN

Stack Overflow用户

发布于 2022-11-15 17:00:49

uint32_tuint16_t是与int不同的类型。

虽然int的大小可能有所不同,但uint32_t总是32位,uint16_t总是16位。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74449478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档