Giả sử tôi có u nghiệp đoàn với hai thành viên a
và b
cùng loại (ví dụ: int).Các thành viên của cùng một loại
union u{
int a,b;
char c;
};
Nếu tôi viết thư cho a
, vượt qua nó để một hàm theo giá trị, và các chức năng đọc từ b
, mong đợi để nhận được giá trị a
, sẽ có bất kỳ vấn đề, xem xét a
và b
có cùng loại? Các thành viên đọc cần phải phản ánh thành viên viết chính xác?
C11 dự thảo N1548 có thể nói rằng sẽ không có vấn đề gì. Tôi không thể chắc chắn. Vẫn đang đọc. Chú thích: “95) Nếu thành viên được sử dụng để đọc nội dung của đối tượng công đoàn không giống như thành viên được sử dụng lần cuối để lưu trữ giá trị trong đối tượng, phần thích hợp của biểu diễn đối tượng của giá trị được diễn giải lại một đại diện đối tượng trong kiểu mới như được mô tả trong 6.2.6 (một quá trình đôi khi được gọi là '' loại punning ''). Đây có thể là một đại diện bẫy. ” – Ryan