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;

Vedere anche

Riferimenti

identificatore di typedef