Udostępnij za pośrednictwem


Ponowna deklaracja nazw elementu typedef

Deklaracja typedef może być używana do ponownej deklaracji tej samej nazwy, aby odwoływała się do tego samego typu.Na przykład:

// FILE1.H
typedef char CHAR;

// FILE2.H
typedef char CHAR;

// PROG.CPP
#include "file1.h"
#include "file2.h"   // OK

W programie PROG.CPP dołączono dwa pliki nagłówkowe, oba zawierające deklarację typedef dla nazwy CHAR.Ponowna deklaracja jest w tym przypadku dopuszczalna, dopóki obie deklaracje odwołują się do tego samego typu.

Deklaracja typedef nie może ponownie definiować nazwy, która została wcześniej zadeklarowana jako inny typ.Z tego powodu, jeśli plik FILE2.H zawiera

// FILE2.H
typedef int CHAR;     // Error

kompilator wygeneruje błąd spowodowany próbą ponownej deklaracji nazwy CHAR, która odwołuje się do innego typu.Rozszerza się to do konstrukcji takich jak:

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;

Zobacz też

Informacje

typedef — specyfikator