Definice TypeDef specifikátor
A typedef prohlášení uvádí název, který v rámci své působnosti, stane se synonymum pro typ dán Deklarace typu část prohlášení.
typedef type-declaration synonym;
Poznámky
Definice typedef prohlášení lze použít při sestavování kratší nebo srozumitelnější názvy pro jazyk již definované typy nebo typy, které jsou deklarovány.Názvy TypeDef umožňují zapouzdření podrobnosti implementace, které mohou změnit.
Oproti třídy, struct, unie, a enum prohlášení, typedef prohlášení není zavést nové typy – mohou zavést nové názvy existujících typů.
Názvy sdílení TypeDef název místa s běžným identifikátory.Program lze tudíž typedef název a identifikátor oboru místního se stejným názvem.
Více informací naleznete:
Příklad
// typedef_specifier1.cpp
typedef char FlagType;
int main()
{
}
void myproc( int )
{
int FlagType;
}
Při deklarování identifikátor oboru místního stejný název jako definice typu nebo deklaraci struktury nebo unie ve stejném oboru nebo vnitřní oboru, musí být zadán specifikátor typu.Příklad:
typedef char FlagType;
const FlagType x;
Znovu použít FlagType název identifikátoru, člen struktura nebo člen union, typ musí být uvedeny:
const int FlagType; // Type specifier required
Nestačí říci
const FlagType; // Incomplete specification
protože FlagType bude součástí typu není identifikátor, který je znovu deklarována.Toto prohlášení se rozumí nelegální prohlášení jako
int; // Illegal declaration
Chcete-li deklarovat libovolného typu s typedef, včetně ukazatele, funkce a typy polí.Můžete deklarovat název definice typedef ukazatel na strukturu nebo typ union před definovat typ struktury nebo unie jako definice jsou stejně viditelné jako prohlášení.
Příklady
Jedno použití typedef prohlášení je ohlašovací jednotnější a kompaktní.Příklad:
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;"
Použití typedef Chcete-li zadat typy základních a odvozené téhož prohlášení, je declarators oddělit čárkou.Příklad:
typedef char CHAR, *PSTR;
Následující příklad uvádí typ DRAWF funkce vracet žádnou hodnotu a vezme dva argumenty int:
typedef void DRAWF( int, int );
Po výše uvedených typedef prohlášení, prohlášení
DRAWF box;
by se ekvivalentní prohlášení
void box( int, int );
typedefčasto kombinované s struct deklarovat a uživatelem definované typy názvů:
// 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);
}