У меня есть две структуры, такие как
struct X {
int x;
double *y;
};
struct Y {
int a;
double *b;
char c;
};
Является ли указатель на struct Y указателем на struct X гарантированно вести себя разумно (т.е. x->x и x->y соответствует y->a и y->b соответственно) стандартом C89? Менее важно, но было бы здорово, если бы вы также знали, что это справедливо и для более поздних стандартов (например, C11) и других языков, которые имеют существенное синтаксическое и семантическое совпадение с C (например, С++ XX, Objective-C )?