Hallo lieber DPler!
Wie wertet der Compiler logisch verknüpfte Boolsche Variablen aus?
Dazu folgendes Beispiel:
Delphi-Quellcode:
function tueDies : Boolean;
begin
// Mach was...
Result := True;
end;
function tueDas : Boolean;
begin
// Mach noch was...
Result := False;
end;
Was passiert nun bei folgendem Code?
Delphi-Quellcode:
if tueDies OR tueDas then // ergibt True OR False := True
foo := 'bar';
In (
ANSI-)C/C++ würde
tueDas nicht aufgerufen werden, da das Statement in der IF-Bedingung sowieso wahr sein wird.
Wie reagiert der Delphi-Compiler?
Gibt es einen festgelegten Standard?
Ich danke für eure Hilfe.
LG,
Xong
PS: Konkreter Hintergrund der Frage ist zum einen pures Interesse und zum anderen das Überprüfen und Anlegen eines Verzeichnisses:
Delphi-Quellcode:
if VerzeichnisExistiert(DirName) OR LegeVerzeichnisAn(DirName) then
// Verzeichnis existiert, also kann damit gearbeitet werden
else
// Verzeichnis existiert nicht -> Fehlermeldung