簡體   English   中英

如何在Delphi中比較兩個數字的相等性?

[英]How do I compare two numbers for equality in Delphi?

我正在將代碼從C轉換為Delphi,但是我停留在代碼的最后一行:

 BOOL is_match = FALSE;
 unsigned int temp_val;
 unsigned int prev_val = 0;

 is_match = (temp_val == val);

我只能這么轉換:

 var
  is_match: boolean;
  temp_val: cardinal;
  prev_val: cardinal;
 begin
  is_match := false;
  prev_val := 0;
  is_match := ????
 end;

如何填寫上一個作業?

is_match := temp_val = val;

無論如何,我希望上面的代碼只是真實代碼的一小部分,因為在將temp_valval進行比較temp_val未定義temp_val

C中的相等比較運算符為== 在Delphi中,等效運算符為=

因此,您需要使用以下代碼:

is_match := temp_val=val;

有趣的是,順便說一句,C相等運算符會導致一個非常經典且難以發現的錯誤。 它是這樣的:

if (x=0)
    DoSomething();

這里發生的是=是賦值運算符,因此x被賦值為0 ,然后進行真值檢驗。 並且返回false,因此從不執行DoSomething() 我相信這種潛在的混亂是Pascal選擇使用:=進行分配的原因之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM