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

FixedInt在所有32位与64位平台上均为32位吗?

FixedInt与LongInt的类型特性澄清

简短结论

  • FixedInt是平台无关的固定32位有符号整数类型,仅在Windows平台上等价于LongInt
  • LongInt是平台相关类型,其字节长度随目标平台变化

详细解析

FixedInt的定义与特性

根据官方文档,FixedInt的定义与特性如下:

type FixedInt = Integer;

定义了一个32位有符号整数类型,在所有32位和64位平台上均固定为32位,取值范围为**-2147483648到2147483647**。

  • 在Windows平台(32位和64位)上,FixedInt等价于LongInt类型。

这一点在System.pas源码中也得到了验证:

{$IFDEF MSWINDOWS}
  FixedInt  = LongInt;
  FixedUInt = LongWord;
{$ENDIF}

LongInt的平台相关性

LongInt是平台相关的有符号整数类型,其大小和取值范围由目标平台决定:

type Longint = { built-in type };

平台相关的有符号整数类型,大小和取值范围取决于目标平台:

  • 在32位平台(含32位Windows、Android)和64位Windows平台上,LongInt为4字节有符号整数,取值范围是**[-2147483648 .. 2147483647]**(即-2³¹到2³¹⁻¹)。
  • 在64位POSIX平台(Android、iOS、Linux、macOS)上,LongInt为8字节有符号整数,取值范围是**[-9223372036854775808 .. 9223372036854775807]**(即-2⁶³到2⁶³⁻¹)。
  • 注:若需固定4字节有符号整数类型,建议使用Integer或FixedInt。

核心疑问解答

FixedInt不会随平台变化改变自身长度,它确实是平台无关的固定32位类型。文档中关于“FixedInt等价于LongInt”仅限定在Windows平台——而Windows平台上的LongInt本身就是32位,这和FixedInt的32位特性并不冲突。

在非Windows平台(比如64位POSIX系统),FixedInt依然保持32位,不会因为LongInt变成64位而改变,不存在文档错误的情况。


内容的提问来源于stack exchange,提问作者Ian Boyd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:28:20