Вы находитесь на странице: 1из 1

Если код программы в C++ и он очень большой, то typedef можно использовать

для создания псевдонимов для (сложных) типов данных (если они много раз
используются). Но в последнее время даже это не рекомендуют делать.
При создании структур в C++ typedef, в принципе, не нужен, т.к. имя нового
типа struct становится известно компилятору, и при объявлении объектов этого типа
не нужно явно указывать ключевое слово struct (а в СИ было нужно):
Рассмотрим использование.
typedef struct Date {
char name[10];
int year;
int month;
}alias_Date;
int main() {
Date st; alias_Date st1;
st.year = 2000;
st1.year = 3000;
cout << st.year << ' ' << st1.year << endl;
}
С точки зрения объявления переменных st и st1 на языке C++ нет разницы.
Однако между struct и typedef struct различие есть. Дело в том, что struct
определяет новый тип. В отличие от этого typedef struct никакого типа не
определяет, он только создает ссылку (alias) с именем alias_Date (но не новый тип)
на тип struct.
Но typedef можно использовать для облегчения возможных изменений.
Например, struct Point может быть объявлено так:
struct Point{
float x1,y1,x2,y2;
};
и во всем остальном коде для представления координат использоваться тип float.
При возникновении необходимости перехода, например, к типу double потребуется
вносить множество изменений в код (и, как всегда, где-то забыть внести изменения).
Эта проблема хорошо решается с помощью следующих объявлений:
typedef float type_coord;
struct Point{
type_coord x1,y1,x2,y2;
};

Вам также может понравиться