今天我正在对我的队友进行代码审查。它是普通的旧 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
所以这意味着这个内河码头关于整数常量的解释目前是不正确的。尤其这句话是错误的:
所有以零开头的常量都被视为八进制。如果八进制常量包含非法数字 8 或 9,则会报告错误。超过 037777777777 的八进制常数将被截断。
我没有收到任何关于使用数字 8 的错误,并且编译器忽略了前导 0。有人可以解释一下这里谁错了以及现在如何在 Delphi 中使用八进制常量吗?
提前谢谢您!
Updated:Delphi 不支持八进制常量的显式声明。所以,这是多语言开发的诅咒,我错误地打扰了我的队友。感谢您的所有回答!
您链接到的是C++参考,不是Delphi参考。 Delphi 不支持八进制文字,仅支持十进制和十六进制文字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)