У меня есть две структуры, такие как
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 )?