Hãy xem xét những điều sau hai struct
:Tiêu chuẩn C nói gì về con trỏ tới cấu trúc và thành viên đầu tiên của chúng?
struct a
{
int a;
};
struct b
{
struct a a_struct;
int b;
};
instantiation sau struct b
:
struct b b_struct;
và tình trạng này:
if (&b_struct == (struct b*)&b_struct.a_struct)
printf("Yes\n");
Liệu tiêu chuẩn nhiệm vụ C này để luôn luôn đánh giá đúng sự thật?
Tôi không thích từ ngữ 'được chuyển đổi phù hợp'. Nó cho ấn tượng mối quan hệ này có thể bị phá vỡ bởi phôi (hoặc thiếu). –
@James: Từ ngữ đơn giản là do sự khác biệt về loại phải tồn tại giữa một con trỏ đến một cấu trúc và một con trỏ đến thành viên đầu tiên của cấu trúc. –