Promotion (Typumwandlung)

Promotion (Typumwandlung)

Als Promotion (auch eingedeutscht als Aufweitung) bezeichnet man in einigen Programmiersprachen eine bestimmte Art von automatischen Typumwandlungen, die zur Vereinfachung von (meist) arithmetischen Operationen durchgeführt werden.

C und C++

In C und C++ werden nur die folgenden Typumwandlungen als Promotion bezeichnet.

  • boolint    (nur C++, in C99 entsprechend für _Bool)
  • charint
  • signed charshortint
  • unsigned charunsigned shortunsigned int
  • floatdouble

Arithmetische Operationen werden stets auf den Datentypen int, unsigned int oder double durchgeführt, sofern nicht (mindestens) ein Operand einen größeren Wertebereich (z. B. long int oder long double) aufweist. Dies ist sinnvoll, so Datentypen benutzt werden, die an die Wortbreite des Prozessors angepasst sind und deshalb Berechnungen mit diesen Datentypen in der Regel am schnellsten sind.

Beispiel:

  unsigned char bytes[] = { 0xBE, 0xEF } ;
  unsigned int w = (bytes[0] << 8) + bytes[1];  /* w bekommt den Wert 0xBEEF */

Dieser Code funktioniert nur, weil die Bitschiebe-Operation << bereits auf (mind. 16 Bit fassendem) unsigned int durchgeführt wird.


Funktionsparameter, die an eine Funktion ohne Funktionsprototypen (nur K&R C) oder als Teil einer Ellipse übergeben werden, werden stets „aufgeweitet“ übergeben. So bekommt die Funktion printf() aus der C-Standardbibliothek im folgenden Beispiel nach dem Formatstring 3 int-Argumente übergeben:

  char c = '$';
  short x = 4711;
  short y = -23;
  printf("Das Zeichen ist %c, die Koordinaten sind (%hd,%hd).", c, x, y);

Zeigertypen werden nicht aufgeweitet, so wird ein short* (Zeiger auf short) nicht in einen int* (Zeiger auf int) aufgeweitet.


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Promotion — (spätlateinisch promotio ‚Beförderung‘, ‚Erhebung‘) steht für Verleihen des Doktorgrades, siehe Promotion (Doktor) Verleihen der Ritterwürde, siehe Ritter eine Art der Typumwandlung bei einigen Programmiersprachen, siehe Promotion (Typumwandlung) …   Deutsch Wikipedia

  • Typumwandlung — Als Typumwandlung (englisch type conversion oder cast) wird in der Informatik die Umwandlung eines Datentyps in einen anderen bezeichnet, um eine Typverletzung zu vermeiden, die durch mangelnde Zuweisungskompatibilität gegeben ist. Hierbei… …   Deutsch Wikipedia

  • Explizite Typumwandlung — Typumwandlung (engl. type conversion oder cast) bezeichnet in der Informatik die Umwandlung des Wertes eines Datentyps in einen Wert eines anderen Datentyps. Beispielsweise kann es sein, dass man eine Zahl als Zeichenkette darstellen möchte. Es… …   Deutsch Wikipedia

  • Typecast — Typumwandlung (engl. type conversion oder cast) bezeichnet in der Informatik die Umwandlung des Wertes eines Datentyps in einen Wert eines anderen Datentyps. Beispielsweise kann es sein, dass man eine Zahl als Zeichenkette darstellen möchte. Es… …   Deutsch Wikipedia

  • Typkonvertierung — Typumwandlung (engl. type conversion oder cast) bezeichnet in der Informatik die Umwandlung des Wertes eines Datentyps in einen Wert eines anderen Datentyps. Beispielsweise kann es sein, dass man eine Zahl als Zeichenkette darstellen möchte. Es… …   Deutsch Wikipedia

  • Typisierung (Informatik) — Eine Typisierung (engl. typing) dient in der Informatik dazu, dass die Objekte (hier Objekte im mathematisch abstrakten Sinne verstanden) der Programmiersprachen, wie z. B. Variablen, Funktionen oder Objekte (im Sinne der objektorientierten… …   Deutsch Wikipedia

  • Typsystem — Die Artikel Typsystem und Typisierung (Informatik) überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”