Typedef declaration
Aus cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Der typedef Erklärung gibt einen Weg, um einen Alias, die überall an Stelle eines (möglicherweise komplexen) Typnamen verwendet werden können .
Original:
The typedef declaration provides a way to create an alias that can be used anywhere in place of a (possibly complex) type name.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Inhaltsverzeichnis |
[Bearbeiten]Syntax
typedef type_declaration; | |||||||||
[Bearbeiten]Erklärung
Die Erklärung, die das Schlüsselwort typedef folgt, ist ansonsten ein normales Typdeklaration (außer dass andere Typspezifizierer, zB static, können nicht verwendet werden). Es kann eine oder mehrere indentifiers auf der gleichen Linie (zB int und einen Zeiger auf int) deklariert, kann es erklären, Array und Funktionstypen, Zeiger und Referenzen, Klasse-Typen, etc. Jeder Bezeichner in dieser Deklaration eingeführt wird ein typedef-Namen statt als ein Objekt, dass es sich, wenn das Schlüsselwort typedef wurde entfernt .
Original:
The declaration that follows the keyword typedef is otherwise a normal type declaration (except that other type specifiers, e.g. static, cannot be used). It may declare one or many indentifiers on the same line (e.g. int and a pointer to int), it may declare array and function types, pointers and references, class types, etc. Every identifier introduced in this declaration becomes a typedef-name rather than an object that it would become if the keyword typedef was removed.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Die typedef-Namen sind für bestehende Typen und sind nicht Deklaration von neuen Arten. Typedef kann nicht verwendet werden, um die Bedeutung eines bestehenden Namen (einschließlich einer typedef-name) ändern. Einmal erklärt, kann ein typedef-name nur neu deklariert, um auf die gleiche Art wieder zu beziehen. Typedef-Namen sind nur wirksam, in dem Bereich, in dem sie sichtbar sind: verschiedene Funktionen oder Klassen Erklärungen können identische Namen mit unterschiedlichen Bedeutung zu definieren .
Original:
The typedef-names are aliases for existing types, and are not declarations of new types. Typedef cannot be used to change the meaning of an existing type name (including a typedef-name). Once declared, a typedef-name may only be redeclared to refer to the same type again. Typedef names are only in effect in the scope where they are visible: different functions or class declarations may define identically-named types with different meaning.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten]Keywords
[Bearbeiten]Beispiel
// simple typedeftypedefunsignedlong ulong; // the following two objects have the same typeunsignedlong l1; ulong l2; // more complicated typedeftypedefint int_t, *intp_t, (&fp)(int, ulong), arr_t[10]; // the following two objects have the same typeint a1[10]; arr_t a2; // common C idiom to avoid having to write "struct S"typedefstruct{int a;int b;} S; // the following two objects have the same typestruct{int a;int b;} s1; S s2; // error: conflicting type specifier// typedef static unsigned int uint; // std::add_const, like many other metafunctions, use member typedefstemplate<class T>struct add_const {typedefconst T type;};
[Bearbeiten]Siehe auch
Typ-Aliasnamen bieten die gleiche Funktionalität wie typedefs mit einer anderen Syntax und gelten auch für die Template-Namen .
Original:
Typ-Aliasnamen provide the same functionality as typedefs using a different syntax, and are also applicable to template names.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.