Страницы

Поиск по вопросам

среда, 3 апреля 2019 г.

Анонимные структуры

Вычитал на сайте это
В некотором коде 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;
"По-моему, так" (с) Пух

Комментариев нет:

Отправить комментарий