Пожалуйста, рассмотрите следующий код:
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
.