Typedef 이름의 재선언

typedef 선언을 사용하여 동일한 이름이 동일한 형식을 참조하도록 다시 선언할 수 있습니다. 예를 들면 다음과 같습니다.

// FILE1.H
typedef char CHAR;

// FILE2.H
typedef char CHAR;

// PROG.CPP
#include "file1.h"
#include "file2.h"   // OK

PROG.CPP 프로그램에는 두 개의 헤더 파일이 포함되어 있으며, 두 파일 모두 CHAR이라는 이름에 대한 typedef 선언을 포함합니다. 두 선언이 동일한 형식을 참조하는 한 이러한 재선언은 허용됩니다.

typedef는 이전에 다른 형식으로 선언된 이름을 다시 정의할 수 없습니다. 따라서 FILE2.H에 다음이 포함된 경우

// FILE2.H
typedef int CHAR;     // Error

컴파일러는 CHAR이라는 이름이 다른 형식을 참조하도록 다시 선언하려는 시도 때문에 오류를 발생시킵니다. 이는 다음과 같은 구문으로 확장됩니다.

typedef char CHAR;
typedef CHAR CHAR;      // OK: redeclared as same type

typedef union REGS      // OK: name REGS redeclared
{                       //  by typedef name with the
    struct wordregs x;  //  same meaning.
    struct byteregs h;
} REGS;

참고 항목

참조

형식 정의 지정자