Tru*_*ill 10 delphi type-conversion compiler-warnings delphi-xe
在Delphi XE或2006中,有没有办法在编译时检测整数类型之间的隐式转换可能会丢失数据?我意识到可以通过运行时检查来检测这一点.我希望它标记以下示例,即使"big"值为1.(我们正在考虑将int更改为bigint以用于某些数据库键,并希望确定对大型遗留代码库的影响.)
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
small: Integer;
big: Int64;
begin
big := 3000000000000;
small := big; // Detect me!
Writeln(small);
end.
Run Code Online (Sandbox Code Playgroud)
Rud*_*uis 10
编译时不会收到任何警告或提示.在Delphi编译器并不能做到这告诉它的任何程序流分析big
包含了过大的值时,它被分配给small
.它默默地截断值以使其适合较小的类型.我试过Shortint
,一个签名的字节大小的类型,甚至没有给出警告或提示.
并且没有办法让Delphi警告你.这会很好.也许你可以在质量控制中建议它(如果还没有建议)?
归档时间: |
|
查看次数: |
699 次 |
最近记录: |