typedef名称的重新

typedef 说明可用于重新声明引用相同类型的相同的名称。 例如:

// FILE1.H
typedef char CHAR;

// FILE2.H
typedef char CHAR;

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

程序 PROG.CPP 包括两个头文件,它们都包含该名称的 CHARtypedef 说明。 只要两个声明都引用同一个类型,以便重新声明它。

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;

请参见

参考

typedef说明符