gpt4 book ai didi

Delphi编译时整数转换警告?

转载 作者:行者123 更新时间:2023-12-03 14:41:51 26 4
gpt4 key购买 nike

在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.

最佳答案

在编译时您不会收到任何警告或提示。 Delphi 编译器进行任何程序流分析,该分析告诉它当big 被分配给small 时包含太大的值。它会默默地截断该值以使其适合较小的类型。我尝试使用 Shortint,一种有符号的字节大小类型,甚至没有给出警告或提示。

而且没有办法让 Delphi 警告你。那就太好了。也许你可以在QC中建议它(如果尚未建议)?

关于Delphi编译时整数转换警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864937/

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