형식 지정자를 정의
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);
}