Einzelnen Beitrag anzeigen

Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#1

Auswertung von logisch verknüpften Statements

  Alt 4. Nov 2008, 14:46
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
  Mit Zitat antworten Zitat