Вычитал на сайте это
В некотором коде C широко распространено использование typedef вместе
с анонимными структурами.
Зачем пользоваться анонимными структурами вместе с typedef вместо простого объявления.
Ответ
В С, в отличие от С++, слово struct приходится постоянно использовать с именем типа -
struct Pair { int a, b; };
struct Pair z;
Просто Pair z; будет не понято компилятором.
Чтобы избежать этой проблемы, можно дописать
typedef struct Pair mypair;
после чего
mypair z;
станет корректным объявлением. Получается, что само имя Pair de facto не используется нигде, кроме как при объявлении структуры и в typedef. Так не проще ли его вообще выкинуть и использовать typedef с анонимной структурой -
typedef struct { int a, b; } pair;
pair z;
"По-моему, так" (с) Пух
Комментариев нет:
Отправить комментарий