加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi XE4 – 八进制常量与十进制常量一样

发布时间:2020-12-15 09:40:55 所属栏目:大数据 来源:网络整理
导读:今天我正在对我的队友进行代码审查.它是普通的旧版Delphi,版本XE4.我检测到这样的代码: cWin_CountryIdsSet: array[0..243] of integer = (499,688,040,...) 它是十进制ID列表,但其中一个 – 040 – 看起来像八进制,对吧?我马上告诉他这个问题,但他回答说
今天我正在对我的队友进行代码审查.它是普通的旧版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不支持八进制文字,只支持十进制和十六进制文字.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读