型定義の名前の Redeclaration
typedef の宣言は再宣言に同じ型を示す同じ名前を使用できます。次に例を示します。
// FILE1.H
typedef char CHAR;
// FILE2.H
typedef char CHAR;
// PROG.CPP
#include "file1.h"
#include "file2.h" // OK
プログラム PROG.CPP は名前 CHAR の typedef の宣言を含む 2 行のヘッダー ファイルが含まれています。宣言は同じ型を示す限りこのような再宣言はできません。を指定できます。
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;