Delphi编译时整数转换警告?
发布时间:2020-12-15 04:25:26 所属栏目:大数据 来源:网络整理
导读:在Delphi XE或2006中,有没有办法在编译时检测整数类型之间的隐式转换可能会丢失数据?我意识到可以通过运行时检查来检测这个.即使“大”值为1,我也希望它标记以下示例.(我们正在考虑将某些数据库密钥的int更改为bigint,并且要确定对大型遗留代码库的影响.) p
在Delphi XE或2006中,有没有办法在编译时检测整数类型之间的隐式转换可能会丢失数据?我意识到可以通过运行时检查来检测这个.即使“大”值为1,我也希望它标记以下示例.(我们正在考虑将某些数据库密钥的int更改为bigint,并且要确定对大型遗留代码库的影响.)
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var small: Integer; big: Int64; begin big := 3000000000000; small := big; // Detect me! Writeln(small); end. 解决方法
编译时您不会收到任何警告或提示. Delphi编译器没有做任何程序流分析,它告诉它,当它被分配给小时,它包含太大的值.它默默地截断值,使其适合较小的类型.我试着用Shortint,一个有符号的字节大小的类型,甚至没有给出警告或暗示.
而且没有办法使德尔福警告你.这会很好也许你可以在QC建议(如果还没有建议)? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |