You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C标准是否保证sizeof(int)与sizeof(unsigned int)大小相等?

关于sizeof(int)与sizeof(unsigned int)的标准保证

你的判断是错误的,C标准明确保证了sizeof(int)等于sizeof(unsigned int)。

  • C标准(包括C11、C17等版本)在类型定义章节中规定:每一种有符号整数类型,都对应一个同名称的无符号类型(通过unsigned关键字修饰),二者使用完全相同的存储空间和对齐要求。int对应的无符号类型就是unsigned int,因此它们的sizeof计算结果必然相等。
  • 标准对这两个类型的取值范围仅做了最低要求:int至少能表示[-32767, 32767],unsigned int至少能表示[0, 65535],但并未允许它们在存储大小上存在差异——无符号类型本质是将有符号类型的符号位作为值位使用,总存储空间的大小保持一致。
  • 那些假设sizeof(int) == sizeof(unsigned int)的程序,其实是符合C标准规范的,不会因平台差异导致该等式失效。

内容的提问来源于stack exchange,提问作者0___________

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:14:58