Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi b <> 0 (https://www.delphipraxis.net/114321-b-0-a.html)

everdream 23. Mai 2008 15:56

Re: b <> 0
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
if not IsZero(b) then a := a / b;

Ich könnte mir vorstellen, dass Delphi da beim compilieren selbst drauf kommt. Kann das jemand bestätigen oder widerlegen?

mkinzler 23. Mai 2008 16:24

Re: b <> 0
 
Der Compiler weiss doch gar nicht, welche Werte die Variablen zur Laufzeit haben

everdream 23. Mai 2008 18:09

Re: b <> 0
 
Ich meine doch, dass er aus
Delphi-Quellcode:
if not b=0 then
beim compilieren
Delphi-Quellcode:
 if not IsZero(b) then
macht.

Eine ähnliche Diskussion habe ich hier neulich zum Thema
Delphi-Quellcode:
i:=i+1;
{bzw.} 
Inc(i);
gelesen.

mkinzler 23. Mai 2008 18:12

Re: b <> 0
 
Automatisch geht es nur andersrum: Durch Compliermagic wird aus
Delphi-Quellcode:
Inc(i);
Delphi-Quellcode:
i := i +1;

himitsu 23. Mai 2008 18:17

Re: b <> 0
 
nein, macht er nicht

i = 0 prüft, ob i genau dem Wert 0 entpsricht (halt "="),
wärend IsZero eine nette Funktion ist, welche prüft ob i etwa/fast 0 entspricht.

everdream 23. Mai 2008 18:54

Re: b <> 0
 
Zitat:

Zitat von mkinzler
Automatisch geht es nur andersrum: Durch Compliermagic wird aus
Delphi-Quellcode:
Inc(i);
Delphi-Quellcode:
i := i +1;

Aber ist nicht Inc(i) (sowohl auf Delphi-, als auch auf ASM-Ebene) schneller als die herkömmliche Addition?

himitsu 23. Mai 2008 19:00

Re: b <> 0
 
ich dachte eher der Compiler macht aus "i := i +1;" ein inc(i) :angel:

mkinzler 23. Mai 2008 19:04

Re: b <> 0
 
Inc() ist eine Prozedur und diese wird wegrationalisiert.
Delphi-Quellcode:
i := i + 1;
wird natürlich als Inkrement implementiert

himitsu 23. Mai 2008 19:21

Re: b <> 0
 
die Prozedur INC gibt es nicht ... it's Compilermagic ... such die mal in deiner System.pas :zwinker:

wird beidest zu ASM-InlineCode "INC &var"



aber von welchen Typ ist den nun das "b"?

mkinzler 23. Mai 2008 19:23

Re: b <> 0
 
Zitat:

die Prozedur INC gibt es nicht ... it's Compilermagic ... such die mal in deiner System.pas Zwinkern
Sag ich doch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz