Freigeben über


Typedef-Spezifizierer

Eine typedef Deklaration erstellt einen Namen ein, der innerhalb seines Bereichs, ein Synonym für den Typ ist, der vom Typdeklarations Teil der Deklaration angegeben ist.

typedef type-declaration synonym;

Hinweise

Sie können Typedef-Deklarationen verwenden, um kürzeres oder aussagekräftige Namen für die Typen zu erstellen, die bereits durch die Sprache definiert sind oder für Typen, die deklariert wurden.Typedef-Namen ermöglichen Ihnen die Implementierungsdetails zu kapseln, die möglicherweise ändern.

Im Gegensatz zu Klassestellen struct, Unionund enum Deklarationen, typedef Deklarationen nicht neue Typen eingeführt — stellen neue Namen für vorhandene Typen eingeführt.

Geben Typedef-Namen Namespace mit gewöhnlichen Bezeichnern frei.Aus diesem Grund kann ein Programm einen Typedef-Namen und eine Variable vom SCOPE-Bezeichner haben die gleichen Namen.

Weitere Informationen finden Sie unter:

Beispiel

// typedef_specifier1.cpp
typedef char FlagType;

int main()
{
}

void myproc( int )
{
    int FlagType;
}

Beim Erstellen eines SCOPE-Bezeichner Variablen mit dem gleichen Namen wie eine Typdefinition oder wenn deklariert einen Member einer Struktur oder Union im gleichen Bereich oder in einem inneren Gültigkeitsbereich deklariert, muss der Typspezifizierer angegeben werden.Beispiele:

typedef char FlagType;
const FlagType x;

Um den FlagType Namen für einen Bezeichner wiederzuverwenden, müssen ein Strukturmember oder Unionmember, der Typ bereitgestellt werden:

const int FlagType;  // Type specifier required

So ist z. B. nicht genügend

const FlagType;      // Incomplete specification

da FlagType genommen wird, um ein Teil des Typs ist kein Bezeichner, der neu deklariert wird.Durch diese Deklaration wird angenommen, dass eine ungültige Deklaration wie sein

int;  // Illegal declaration 

Sie können jeden Typ mit typedef, einschließlich Zeiger, Funktions- und Arraytypen deklarieren.Sie können einen Typedef-Namen für einen Zeiger auf eine Struktur oder ein Union-Typ deklarieren, bevor Sie die Struktur oder Union-Typ definieren, solange die Definition die gleiche Sichtbarkeit wie die Deklaration hat.

Beispiele

Bei Verwendung typedef Deklarationen ist, Deklarationen und Vertrag Uniform mehr zu machen.Beispiele:

typedef char CHAR;          // Character type.
typedef CHAR * PSTR;        // Pointer to a string (char *).
PSTR strchr( PSTR source, CHAR target );
typedef unsigned long ulong;
ulong ul;     // Equivalent to "unsigned long ul;"

Um mit typedef basiert und abgeleitete Typen in der gleichen Deklaration angeben, können Sie Deklaratoren durch Kommas getrennt wird.Beispiele:

typedef char CHAR, *PSTR;

Das folgende Beispiel stellt den Typ DRAWF für eine Funktion bereit, die keinen Wert zurückgibt und zwei int-Argumente akzeptiert:

typedef void DRAWF( int, int );

Nach der oben erwähnten Deklaration der Anweisung typedef

DRAWF box; 

Stellen Sie nach der Deklaration

void box( int, int );

typedef wird häufig mit struct kombiniert, um benutzerdefinierte Typen zu deklarieren und zu benennen:

// typedef_specifier2.cpp
#include <stdio.h>

typedef struct mystructtag
{
    int   i;
    double f;
} mystruct;

int main()
{
    mystruct ms;
    ms.i = 10;
    ms.f = 0.99;
    printf_s("%d   %f\n", ms.i, ms.f);
}
  

Siehe auch

Referenz

C++-Schlüsselwörter

Weitere Ressourcen

C++ Type Names