Redéclaration des noms typedef

La déclaration 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 typedef pour le nom CHAR. Tant que les deux déclarations désignent le même type, cette redéclaration est acceptable.

Un typedef ne peut pas redéfinir un nom précédemment 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 de redéclaration du nom CHAR pour faire référence à un type différent. Cela s'étend aux constructions telles que :

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;

Voir aussi

Référence

typedef, spécificateur