Vergleich von Delphi und Visual C++ - Inhalt
Vergleich von Delphi und Visual C++ - Inhalt
Vergleich von Delphi und Visual C++ - Inhalt
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Vergleich</strong> <strong>von</strong> <strong>Delphi</strong> <strong>und</strong> <strong>Visual</strong> <strong>C++</strong> - Kapitel 2A<br />
Gleichheit<br />
==<br />
=<br />
boolean IsEqual;<br />
IsEqual= 4 == 8; // FALSE<br />
var IsEqual: Boolean;<br />
IsEqual:= 4 = 8; // FALSE<br />
Anmerkung:<br />
unsigned short i;<br />
i = 4;<br />
=<br />
Der Zuweisungsoperator <strong>und</strong> der Operator zur<br />
Prüfung auf Gleichheit wurden bereits in der Sprache<br />
C vielfach kritisiert. Allzuleicht wird statt einer<br />
gewünschten Gleichheits-prüfung unbeabsichtigt eine<br />
Zuweisung durchgeführt:<br />
var i: Word;<br />
i := 4;<br />
:=<br />
void main()<br />
{<br />
int a = 3; // a ist 3<br />
if (a = 4)<br />
printf("a ist 4");<br />
else<br />
printf("a nicht 4");<br />
}<br />
Ausgabe: a ist 4<br />
Zuweisungsoperator<br />
Erweiterte<br />
Zuweisungsoperatoren<br />
Der else-Zweig wird nie durchlaufen werden. Bei if (a<br />
= 4) wird nicht a geprüft, sondern a wird der Wert 4<br />
zugewiesen <strong>und</strong> der Erfolg dieser Zuweisung geprüft.<br />
Der verläuft natürlich immer erfolgreich <strong>und</strong> liefert<br />
also TRUE. Der Compiler kann solch einen Fehler<br />
nicht aufdecken, weil es kein syntaktischer oder<br />
semantischer, sondern ein logischer Fehler ist.<br />
=<br />
entspricht<br />
=<br />
<br />
sofern keine Seiteneffekte auftreten, wie z.B.<br />
beiv[i++] *= 5;<br />
keine erweiterten<br />
Zuweisungsoperatoren<br />
Statt dessen können die, sowieso besser lesbaren,<br />
normalen Operatoren angewendet werden.<br />
http://ourworld.compuserve.com/homepages/praxisservice/kapit2a.htm (13 of 24) [19.05.2000 15:30:03]