gpt4 book ai didi

multithreading - 在Delphi中,为什么不能直接比较threadvar类型的 float ?

转载 作者:行者123 更新时间:2023-12-03 15:31:05 26 4
gpt4 key购买 nike

我在Delphi 6,7和XE2中测试过这个,都显示这个错误。
我想直接比较线程中的两个 float ,如下所示:

threadvar
a,b : Double;

procedure test;
begin
if a > b then
;
end;

但是在编译时,DCC发生了内部错误。所以我这样修改了:

threadvar
a,b : Double;

procedure test;
begin
if a - b > 0 then
;
end;

错误消失了,为什么?

最佳答案

这显然是编译器中的一个错误。我已向 Quality Central 报告了该错误,QC#101656 。该错误仅影响 32 位编译器,但这不会给任何人带来太多安慰!

您可以通过将变量放入记录中来解决此问题,如下所示:

threadvar
r: record
a,b: Double;
end;

procedure test;
begin
if r.a > r.b then
;
end;

关于multithreading - 在Delphi中,为什么不能直接比较threadvar类型的 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425728/

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