共用方式為


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;

請參閱

參考

typedef 規範