Compartir a través de


especificador typedef

Una declaración de typedef presenta un nombre que, dentro de su ámbito, se convierta en un sinónimo para el tipo especificado por la parte de la declaración de tipos de la declaración.

typedef type-declaration synonym;

Comentarios

Puede utilizar declaraciones typedef para construir más corto o más nombres descriptivos para tipos ya definido por el lenguaje o de tipos declarados.Los nombres de Typedef permiten encapsula los detalles de implementación que pueden cambiar.

A diferencia de clase, struct, union, y las declaraciones de enum , declaraciones de typedef no muestran nuevos tipos — presentan los nuevos nombres para los tipos existentes.

Los nombres de Typedef comparten espacio de nombres con los identificadores normales.Por consiguiente, un programa puede tener un nombre typedef y un identificador de valor local-ámbito por el mismo nombre.

Para obtener más información, vea:

Ejemplo

// typedef_specifier1.cpp
typedef char FlagType;

int main()
{
}

void myproc( int )
{
    int FlagType;
}

Al declarar un identificador de valor local-ámbito por el mismo nombre que un tipo typedef, o al declarar un miembro de una estructura o unión en el mismo ámbito o en un ámbito interno, el especificador de tipo debe ser especificado.Por ejemplo:

typedef char FlagType;
const FlagType x;

Para reutilizar el nombre de FlagType para un identificador, un miembro de una estructura, o unión, el tipo debe ser proporcionado:

const int FlagType;  // Type specifier required

no es suficiente decir

const FlagType;      // Incomplete specification

dado que FlagType se toma para formar parte del tipo, no un identificador que volver.esta declaración se toma para ser una declaración no válida como

int;  // Illegal declaration 

Puede declarar cualquier tipo con typedef, incluidos puntero, función, y tipos de matriz.Puede declarar un nombre typedef para un puntero a un tipo de estructura o unión antes de definir el tipo de estructura o unión, mientras la definición tiene la misma visibilidad que la declaración.

Ejemplos

Un uso de declaraciones de typedef es crear las declaraciones más uniforme y contrato.Por ejemplo:

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;"

Para utilizar typedef para especificar fundamental y tipos derivados en la misma declaración, puede separar declarantes con comas.Por ejemplo:

typedef char CHAR, *PSTR;

el ejemplo siguiente proporciona el tipo DRAWF para una función que no devuelve ningún valor y que toma dos argumentos de int:

typedef void DRAWF( int, int );

Después de la instrucción anterior de typedef , la declaración

DRAWF box; 

equivalente a la declaración

void box( int, int );

typedef se combina con struct para declarar y llamar a tipos definidos por el usuario:

// 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);
}
  

Vea también

Referencia

Palabras clave de C++

Otros recursos

C++ Type Names