
Zitat von
Hansa:
Ja, so ist das. Der Compiler setzt das Zeichen in seinen
Ascii-Wert (oder sonstwas zurück)
Der Compiler setzt gar nichts zurück. Wenn der Compiler es nicht verhindern würde, dann könntest Du folgendes tun
Delphi-Quellcode:
var
B: Byte;
C: Char;
...
B := 65;
C := 'A';
if B = C then
...
Der Lauf würde True ergeben, nur der Compiler erlaubt den Vergleich nicht!
Delphi-Quellcode:
var
B: Byte;
C: Char;
...
B := 65;
C := '
A';
asm
Mov AL, B
Mov AH, C
CMP AL, AH
JNZ @@OOPS
...
@@OOPS:
Das würde ohne Probleme gehen und True ergeben. Intern sind Byte und Char IDENTISCH.

Zitat von
Hansa:
D.h., da werden die Funktionen ORD, CHR usw. automatisch aufgerufen, um uns die Arbeit zu ersparen.
Schlußfolgerung aus oben. Der Compiler macht GAR NICHTS.

Zitat von
Hansa:
Denn dadurch kommen auch Rundungsdifferenzen etc. zustande.
Byte Ganzzahln wie Byte und Integer dies sind, kommt es nicht zu Rundungsfehlern!
...

...
Lizbeth W.
Ich bin nicht zurück, ich tue nur so