описатель typedef
A typedef объявление вставляет имя, которое в пределах своей области, является синонимом для типа, передаваемых объявление типа часть объявления.
typedef type-declaration synonym;
Заметки
Можно использовать объявления typedef для создания более короткие или более значимые имена типов, либо уже определенных типов, объявляли.Имена Typedef позволяющие инкапсулировать сведения о реализации, которые могут измениться.
в отличие от класс" struct" unionи enum объявления typedef объявления не вводят новые типы - они представлены новые имена существующих типов.
Имена совместно используют Typedef пространство имен с помощью обычных идентификаторов.Поэтому программа может иметь имя и идентификатор местный-области typedef тем же именем.
Дополнительные сведения см. в следующих разделах.
Пример
// typedef_specifier1.cpp
typedef char FlagType;
int main()
{
}
void myproc( int )
{
int FlagType;
}
При объявлении идентификатор местный-области таким же именем, как typedef или при объявлении члена структуры или объединения в одной области или во внутренней области, описатель типа необходимо определить.Примеры.
typedef char FlagType;
const FlagType x;
Повторное использование FlagType имя идентификатора члена структуры или объединения, необходимо предоставить тип участника.
const int FlagType; // Type specifier required
Недостаточно сообщить
const FlagType; // Incomplete specification
поскольку FlagType требует, чтобы быть частью типа, не идентификатора, повторно объявлен.Это объявление принято, чтобы быть противозаконным объявлением как
int; // Illegal declaration
Можно объявить любой тип с typedef, включая указатель функции и типы массива.Можно объявить имя typedef для указателя на тип структуры или объединения прежде чем определить тип структуры или объединения, пока определение имеет ту же видимость в качестве объявления.
Примеры
Одна использование typedef объявления сделать объявлениями несколько форм и сжатие.Примеры.
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;"
Использование typedef чтобы определить принцип и производные типы в одном объявлении, можно разделить деклараторы запятыми.Примеры.
typedef char CHAR, *PSTR;
Следующий пример предоставляет тип DRAWF для функции, не возвращая значение и предполагается 2 аргумента int:
typedef void DRAWF( int, int );
После указанного выше typedef выписка, объявление
DRAWF box;
был эквивалентно объявлению
void box( int, int );
typedef часто сочетаются с struct объявление и назвать пользовательские типы:
// 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);
}