다음을 통해 공유


형식 지정자를 정의

A typedef 선언 소개 이름을 해당 범위 내에서 주어진 형식에 대 한 동의어 되는 형식 선언 선언 부분입니다.

typedef type-declaration synonym;

설명

형식 정의 선언을 더 짧게 또는 더 의미 있는 이름을 이미 언어에 의해 정의 된 형식 또는 선언 된 형식에 대해 구성할 수 있습니다.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 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 값을 반환 하 고 두 개의 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);
}
  

참고 항목

참조

C + + 키워드

기타 리소스

C++ Type Names