Mỗi trình biên dịch C cung cấp tùy chọn "đóng gói" các cấu trúc C (ví dụ: __attribute__ ((__packed__))
hoặc #pragma pack()
). Bây giờ, tất cả chúng ta đều biết rằng việc đóng gói là bắt buộc, nếu chúng ta muốn gửi hoặc lưu trữ dữ liệu một cách đáng tin cậy. Đây cũng phải là một yêu cầu kể từ những ngày đầu tiên của ngôn ngữ C.
Vì vậy, tôi tự hỏi tại sao cấu trúc đóng gói không phải là một phần của đặc tả ngôn ngữ C? Họ thậm chí không ở C99 hay C11 mặc dù sự cần thiết phải có chúng trong nhiều thập kỷ nay? Tôi đang thiếu gì? Tại sao nó là trình biên dịch cụ thể?