Поделиться через


Redeclaration имен typedef

typedef объявление можно использовать для redeclare одинаковое имя, которое должно относиться к одному типу.Примеры.

// FILE1.H
typedef char CHAR;

// FILE2.H
typedef char CHAR;

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

Программа PROG.CPP включает 2 файла заголовка, оба из которых содержат typedef объявления для имени CHAR.Если оба объявления относятся к одному и тому же типу, то redeclaration приемлемо.

A typedef не удалось переопределить имя, которое предварительно было объявлено как другой тип.Поэтому, если FILE2.H содержащий

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

компилятор выдает ошибку из-за попытки redeclare имя CHAR ссылаться на иной тип.Это распространяется на конструкциям how to:

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;

См. также

Ссылки

описатель typedef