![]() |
Delphi-Version: 2005
Unterschied zwischen "not" und "false"?
Hallo!
Gibt es irgenwelche Unterschied zwischen
Delphi-Quellcode:
und
if irgendwas = false then
Delphi-Quellcode:
Sind die beide Methoden gleich schnell?
if not irgendwas then
|
AW: Unterschied zwischen "not" und "false"?
Ob sie gleich schnell sind, kann ich Dir nicht sagen. Allerdings sollte man nie auf true oder false prüfen, da dies zumindest bei true in die Hose gehen kann.
|
AW: Unterschied zwischen "not" und "false"?
Beides ist gleich.
Nur das... Zitat:
|
AW: Unterschied zwischen "not" und "false"?
Ja
Tut man nicht
Delphi-Quellcode:
Das ist korrekt
if irgendwas = false then
Delphi-Quellcode:
Den erzeugten Code kannst du über den Debugger rausfinden.
if not irgendwas then
Wenn der gleich sein sollte (Compilermagic) dann ist es gleich schnell Ansonsten einfach mal die Zeit messen |
AW: Unterschied zwischen "not" und "false"?
Zitat:
Code:
Es ist also EXAKT gleich.
test bl, bl
jnz xxx Wenn man allerdings
Delphi-Quellcode:
macht, wird dies
if (irgendwas = true) then
Code:
und
cmp bl,1
jz xxx
Delphi-Quellcode:
wird
if (irgendwas) then
Code:
Also wie gesagt ist es egal was man bei false macht aber bei true sollte man aufpassen.
test bl,bl
jz xxx |
AW: Unterschied zwischen "not" und "false"?
Das 1. bedeutet ja das Vergleich irgendwas = false true sein muss:
Code:
Das 2. das die Variable negiert wird
irgendwas: false
false = false -> true irgendwas: true false = true -> false
Code:
Das Problem ist das true als <> 0 deklariert ist, also True nicht unbedingt True ist.
irgendwas: false
false -> true irgendwas: true true -> false |
AW: Unterschied zwischen "not" und "false"?
Delphi-Quellcode:
var b: Boolean;
begin Memo1.Lines.Add(''); Memo1.Lines.Add('b := false;'); b := false; if b then Memo1.Lines.Add('if b then'); if not b then Memo1.Lines.Add('if not b then'); if b = false then Memo1.Lines.Add('if b = false then'); if b = true then Memo1.Lines.Add('if b = true then'); Memo1.Lines.Add(''); Memo1.Lines.Add('b := true;'); b := true; if b then Memo1.Lines.Add('if b then'); if not b then Memo1.Lines.Add('if not b then'); if b = false then Memo1.Lines.Add('if b = false then'); if b = true then Memo1.Lines.Add('if b = true then'); Memo1.Lines.Add(''); Memo1.Lines.Add('b := 3;'); b := Boolean(3); if b then Memo1.Lines.Add('if b then'); if not b then Memo1.Lines.Add('if not b then'); if b = false then Memo1.Lines.Add('if b = false then'); if b = true then Memo1.Lines.Add('if b = true then'); end; |
AW: Unterschied zwischen "not" und "false"?
Möchte noch jemand etwas zum Thema "nicht auf true prüfen" beitragen? 55.071 Users left :stupid:
|
AW: Unterschied zwischen "not" und "false"?
Vielen Dank für so viele Anregungen!
Zitat:
|
AW: Unterschied zwischen "not" und "false"?
Hast Du den Code von himitsu einmal ausprobiert?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz