gpt4 book ai didi

Delphi XE4 - 八进制常数像十进制常数一样工作

转载 作者:行者123 更新时间:2023-12-03 15:19:05 25 4
gpt4 key购买 nike

今天我正在对我的队友进行代码审查。它是普通的旧 Delphi,版本 XE4。我检测到这样的代码:

cWin_CountryIdsSet: array[0..243] of integer = (499, 688, 040, ...)

这是十进制 ID 列表,但其中一个 - 040 - 看起来像八进制,对吗?我立即告诉他这个问题,但他回答说:“不,它的工作方式就像小数,你自己看看”。他是对的!我写了一个小例子:

Writeln(080);
if 80 = 080 then Writeln('They are equal');
Writeln(IntToStr(080));

它显示:

80
They are equal
80

所以这意味着这个Embarcadero的explanation about integer constants目前是不正确的。尤其是这句话是错误的:

All constants with an initial zero are taken to be octal. If an octal constant contains the illegal digits 8 or 9, an error is reported. Octal constants exceeding 037777777777 are truncated.

我没有收到任何有关使用数字 8 的错误,并且编译器忽略了前导 0。有人可以解释一下这里谁错了以及现在如何在 Delphi 中使用八进制常量吗?

提前谢谢您!

更新:Delphi 不支持八进制常量的显式声明。所以,这是多语言开发的诅咒,我错误地打扰了我的队友。谢谢大家的回答!

最佳答案

您链接到的是C++引用,而不是Delphi引用。 Delphi 不支持八进制文字,仅支持十进制和十六进制文字。

关于Delphi XE4 - 八进制常数像十进制常数一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23214528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com