Opětovná deklarace názvů typedef
Deklarace typedef lze použít k redeklaraci stejného názvu k odkazování na stejný typ.Příklad:
// FILE1.H
typedef char CHAR;
// FILE2.H
typedef char CHAR;
// PROG.CPP
#include "file1.h"
#include "file2.h" // OK
Program PROG.CPP obsahuje dva soubory hlaviček, z nichž obě obsahují deklarace typedef pro název CHAR.Pokud obě tyto deklarace odkazují na stejný typ, je taková redeklarace přijatelná.
Deklarace typedef nemůže redefinovat název, který byl dříve deklarován jako jiný typ.Proto pokud soubor FILE2.H obsahuje
// FILE2.H
typedef int CHAR; // Error
kompilátor vygeneruje chybu z důvodu pokusu o redeklaraci názvu CHAR, aby odkazoval na jiný typ.Dojde k rozšíření na konstrukce, jako jsou například:
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;