我在这里有一个程序,它在 Delphi 3 中运行良好,我在 Turbo Delphi 2006 上编译和测试,发现了一个问题。问题是这样的:我使用“基本”数据类型作为某些东西的索引。它在 Delphi 3 中工作,但我发现值比 Turbo Delphi 2006 编译版本中的值大约 128-256 左右,具体取决于具体数据。将这些数据类型更改为“longint”解决了问题,因此程序可以在两个编译器上正常工作。
问题:这是为什么?
我的理解是 Cardinal 数据类型只是典型的无符号整数数据。这与它们在本程序中的应用是一致的,特别是Delphi 3 编译正确的事实证明了这一点。那么为什么 Turbo Delphi 2006 编译不起作用呢?