Работа typedef c++

Хотелось бы немного разобраться с работой typedef. В определении написано, что оно является синонимом для типа, который мы указали. И у меня возникает вопрос: как это - синоним? Ну тоесть объявление typedef int my_int будет в некоторой степени эквивалентно #define my_int int, только у typedef-объявлений своя область видимости. И при компиляции my_int будет заменяться на int? Каким образом это работает?


Ответы (1 шт):

Автор решения: S.H.

Попробую описать типичные сценарии

Самое простое - это писать короткие названия типов, типа

    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;

И - да, при компиляции короткие названия будут заменяться на полные.

→ Ссылка