Redéclaration des noms de typedef
La déclaration d' typedef peut être utilisée pour redéclarer le même nom pour faire référence au même type.Par exemple :
// FILE1.H
typedef char CHAR;
// FILE2.H
typedef char CHAR;
// PROG.CPP
#include "file1.h"
#include "file2.h" // OK
Le programme PROG.CPP inclut deux fichiers d'en-tête, qui contiennent des déclarations d' typedef pour le nom CHAR.Autant que les deux déclarations font référence au même type, un tel redéclaration est acceptable.
typedef ne peut pas modifier un nom qui a déjà été déclaré comme type différent.par conséquent, si FILE2.H contient
// FILE2.H
typedef int CHAR; // Error
le compilateur fournit une erreur en raison de la tentative pour redéclarer le nom CHAR de faire référence à un type différent.Cela étend aux éléments par exemple :
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;