Этот метод "структурного наследования" гарантированно работает или зависит от реализации? - PullRequest
1 голос
/ 27 апреля 2019

Пожалуйста, рассмотрите следующий код:

typedef struct {
    int base_value;
} Base;

typedef struct {
    Base base;
    int child_value;
} Child;

Base* base = get_thing();
Child* child = (Child*) base;

Гарантируется ли следующее всегда , или это зависит от реализации?

printf("%d", child->base_value);

Обратите вниманиеЯ не сначала прохожу через base (child->base.base_value), но иду прямо к base_value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...