05.11.2013 Aufrufe

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 2B<br />

Neben den typisierten Konstanten existieren in beiden Sprachen untypisierte Konstanten. Sie können mitten im Quelltext als feststehende Zeichen <strong>und</strong><br />

Zeichenketten auftreten oder als konstanter Ausdruck explizit definiert worden sein. Sie werden in <strong>C++</strong>, anders als in Pascal, nicht durch das<br />

Schlüsselwort const, sondern durch einen Ausdruck der Art #define Konstante (ohne abschließendes Semikolon) angegeben <strong>und</strong> durch den Präprozessor<br />

vor dem eigentlichen Übersetzungslauf an den entsprechenden Stellen im Quelltext ersetzt.<br />

<strong>C++</strong><br />

Pascal<br />

Numerische<br />

Konstante<br />

im Text<br />

String-<br />

Konstante<br />

im Text<br />

double Betrag;<br />

···<br />

Betrag = 35.20;<br />

// hexadezimal<br />

Betrag = 0x3F20;<br />

printf("Das ist mehr"\<br />

"zeiliger Text\n");<br />

var Betrag: Double;<br />

···<br />

Betrag:= 35.20;<br />

// hexadezimal<br />

Betrag:= $3F20;<br />

writeln('Das ist mehr' +<br />

'zeiliger Text'#13);<br />

durch<br />

explizite<br />

Definition<br />

#define Laenge = 13<br />

···<br />

printf("%d", Laenge);<br />

const Laenge = 13;<br />

···<br />

writeln(Laenge);<br />

String-Konstanten werden auch String-Literale genannt. Im Text auftretende ASCII-Zeichen wie '\0' oder #0 nennt man Zeichen-Literale. Beachtet<br />

werden muß, daß const-Ausdrücke Blockgültigkeit besitzen, während der Gültigkeitsbereich der #define-Anweisung erst durch eine zugehörige<br />

#<strong>und</strong>efine-Anweisung aufgehoben wird.<br />

Konstanten werden <strong>von</strong> den Compilern im Code-Abschnitt des zu erzeugenden Programms eingefügt. Da konstante Ausdrücke schreibgeschützt sind,<br />

kann sich der Codeinhalt zur Laufzeit nicht ändern. Sich selbst modifizierender Code (veränderte Konstanten-Werte) würde die Optimierungsstrategien<br />

moderner Prozessoren, wie die des Pentium Pro <strong>von</strong> Intel, unterlaufen. Die hier angewandten Verfahren der überlappten, parallelen <strong>und</strong><br />

vorausschauenden Befehlsausführung können nur dann beschleunigend wirken, wenn einmal geladener Code nicht verändert wird. <strong>Delphi</strong> gestattet<br />

jedoch aus Gründen der Abwärtskompatibilität, mit der Compiler-Anweisung {$WRITEABLECONST ON} Schreibzugriffe auf typisierte Konstanten<br />

http://ourworld.compuserve.com/homepages/praxisservice/kapit2b.htm (26 of 52) [19.05.2000 15:30:09]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!