element TypeDef specyfikatora
A typedef deklarację wprowadza nazwę, która jej zakresem, staje się synonimem typu, biorąc pod uwagę przez deklaracji typu część zgłoszenia.
typedef type-declaration synonym;
Uwagi
Element typedef deklaracji można użyć do konstruowania krótszy lub bardziej znaczące nazwy dla typów zdefiniowanych przez język lub typów, które zostały zgłoszone.Element TypeDef nazwy umożliwiają hermetyzowania szczegóły dotyczące implementacji, które mogą ulec zmianie.
W przeciwieństwie do klasy, struct, Unii, i enum deklaracje, typedef deklaracje nie wprowadzają nowych typów — wprowadzą one nowe nazwy dla istniejących typów.
Element TypeDef nazwy udziału obszaru nazw z identyfikatorami zwykłych.W związku z tym program może mieć nazwę elementu typedef i identyfikatora zakresu lokalnego o tej samej nazwie.
Aby uzyskać więcej informacji zobacz:
Przykład
// typedef_specifier1.cpp
typedef char FlagType;
int main()
{
}
void myproc( int )
{
int FlagType;
}
W przypadku deklarowania identyfikator zakresu lokalnego o tej samej nazwie jak element typedef lub deklarowanie członek struktury lub Unii, w tym samym zakresie lub w zakresie wewnętrznej, musi być określona specyfikatora typu.Na przykład:
typedef char FlagType;
const FlagType x;
Aby ponownie użyć FlagType należy podać nazwę dla identyfikatora, członek struktury lub członkiem Unii, typ:
const int FlagType; // Type specifier required
Nie jest wystarczające, aby powiedzieć
const FlagType; // Incomplete specification
Ponieważ FlagType przyjmuje się część tego typu, nie identyfikator, który jest przy redeclared.Deklaracja ta przyjmuje się nielegalnych deklaracji, podobnie jak
int; // Illegal declaration
Można zadeklarować dowolnego typu z element typedef, w tym wskaźnik, funkcji i typów tablicowych.Nazwa elementu typedef dla wskaźnika do struktury lub Unii typu można zadeklarować przed zdefiniowaniem typu Struktura lub Unii tak długo, jak definicja ma taką samą widoczność jak zgłoszenia.
Przykłady
Jednym z zastosowań typedef deklaracji jest do sporządzenia deklaracji, bardziej jednolitą i kompaktuj.Na przykład:
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;"
Aby użyć typedef określenie typów podstawowych i pochodnych w tej samej deklaracji, declarators można oddzielić przecinkami.Na przykład:
typedef char CHAR, *PSTR;
W następującym przykładzie podano typ DRAWF dla funkcji zwracać wartość nie i podjęcie dwa argumenty int:
typedef void DRAWF( int, int );
Po wyżej typedef instrukcji, zgłoszenia
DRAWF box;
byłoby równoważne do deklaracji
void box( int, int );
typedefczęsto jest połączona z struct zadeklarować i nazwać typy zdefiniowane przez użytkownika:
// 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);
}