Ridichiarazione dei nomi typedef
typedef la dichiarazione può essere utilizzata per ridichiarare lo stesso nome per fare riferimento allo stesso tipo.Di seguito è riportato un esempio:
// FILE1.H
typedef char CHAR;
// FILE2.H
typedef char CHAR;
// PROG.CPP
#include "file1.h"
#include "file2.h" // OK
Il programma PROG.CPP include due file di intestazione, entrambi contengono typedef dichiarazioni per il nome CHAR.Se entrambe le dichiarazioni si riferiscono allo stesso tipo, tale ridichiarazione è accettabile.
In typedef non è possibile ridefinire un nome che era dichiarato come tipo diverso.Pertanto, se FILE2.H contiene
// FILE2.H
typedef int CHAR; // Error
il compilatore genera un errore a causa di tentativi per ridichiarare il nome CHAR per fare riferimento a un tipo diverso.Ciò estende per costrutti come:
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;