Работа typedef c++
Хотелось бы немного разобраться с работой typedef. В определении написано, что оно является синонимом для типа, который мы указали. И у меня возникает вопрос: как это - синоним? Ну тоесть объявление typedef int my_int будет в некоторой степени эквивалентно #define my_int int, только у typedef-объявлений своя область видимости. И при компиляции my_int будет заменяться на int? Каким образом это работает?
Ответы (1 шт):
Попробую описать типичные сценарии
Самое простое - это писать короткие названия типов, типа
typedef unsigned long long ulong;
и теперь вместо длинного названия типа переменной unsigned long long можно писать просто ulong
Второе упрощение (пришедшее прмо из C) - работа со структурами, что то вроде
struct args {
char* name;
int age;
};
В С пришлось бы при определении каждой переменной писать struct args arg1;.
Но можно написать
typedef struct args_t {
char* name;
int age;
} args;
и тогда определения переменных будут такими: args arg1;
И - да, при компиляции короткие названия будут заменяться на полные.