next up previous
Nächste Seite: Arrays Aufwärts: Typisierte Konstanten Vorherige Seite: Typisierte Konstanten

Unstrukturierte Typen

Bei unstrukturierten Typen wird der Wert innerhalb der geschweiften Klammern in den angegebenen Typ konvertiert, falls dies möglich und nötig ist.


\begin{example}
Beispiele:
\begin{verbatim}CONST
li = LONGINT{-50};
r = REAL{1.5};
c = Farbe{gruen};\end{verbatim}\end{example}

Einen Sonderfall stellt hier die Standardprozedur ADR dar. Das Ergebnis ist als ADDRESS natürlich zuweisungskompatibel zu allen Zeigern, jedoch muss auch das Objekt, dessen Adresse bestimmt werden soll, konstant sein.

Dazu zählen:

Dazu zählen nicht:

Objekte, die via ADR referenziert werden, werden auf jeden Fall im Konstantenbereich abgelegt, auch wenn die eigentliche Konstante im Programm nicht benutzt wird. So wird die Versionszeichenkette a1 des untenstehenden Beispiels nicht wegoptimiert. In Definitionsmoduln darf ADR nicht benutzt werden.


\begin{example}
Beispiele:
\par\begin{alltt}
\relax{} CONST
\\ \verb*\vert a1 = ...
...DR(GlobVar)}; (* Programm NICHT reentrant! *)
\\ \relax \end{alltt}\end{example}


\begin{warning}
Durch dieses Feature werden leicht Referenzen erzeugt, die
ein P...
...urden wird die optimierende Ablage der
Zeichenketten abgeschaltet.
\end{warning}



Claudio Nieder 2000-11-12