pau*_*ohr 1 c delphi if-statement
我正在将代码从C转换为Delphi,但我仍然停留在这段代码的最后一行:
BOOL is_match = FALSE;
unsigned int temp_val;
unsigned int prev_val = 0;
is_match = (temp_val == val);
Run Code Online (Sandbox Code Playgroud)
我只能转换这么多:
var
is_match: boolean;
temp_val: cardinal;
prev_val: cardinal;
begin
is_match := false;
prev_val := 0;
is_match := ????
end;
Run Code Online (Sandbox Code Playgroud)
我如何填写最后一个作业?
C中的等式比较运算符是==.在Delphi中,等效运算符是=.
所以你需要使用这段代码:
is_match := temp_val=val;
Run Code Online (Sandbox Code Playgroud)
有趣的是,顺便说一句,C等值运算符导致了一个非常经典且难以发现的错误.它是这样的:
if (x=0)
DoSomething();
Run Code Online (Sandbox Code Playgroud)
这里发生的是=赋值运算符,因此x分配了一个值,0然后进行真值测试.并返回false,因此DoSomething()永远不会执行.我相信这种潜在的混淆是Pascal选择:=用于任务的原因之一.
| 归档时间: |
|
| 查看次数: |
2029 次 |
| 最近记录: |