Tôi đang phát triển một thư viện mục đích chung trong đó sử dụng Win32 của HeapAllocalignment gì HeapAlloc sử dụng
MSDN không đề cập đến đảm bảo sự liên kết cho HeapAlloc Win32, nhưng tôi thực sự cần phải biết những gì sắp xếp nó sử dụng, vì vậy tôi có thể tránh được quá nhiều đệm.
Trên máy tính của tôi (vista, x86), tất cả phân bổ đều được căn chỉnh ở 8 byte. Điều này cũng đúng cho các nền tảng khác không?
Nếu MSDN không nói, thì * không có bảo đảm *. Ngay cả khi bạn hỏi 1000 người và tất cả họ đều xác định 8 byte trên máy của họ, đó không phải là sự đảm bảo và bạn có lẽ không nên dựa vào nó. –
Tôi đồng ý với các điều khoản trên. Bạn có thể muốn xem http://blogs.msdn.com/oldnewthing/archive/2007/12/27/6873648.aspx để xem liệu nó có liên quan hay không. – torak
Tôi đồng ý, không có sự đảm bảo nào, nhưng tôi không yêu cầu bảo đảm ở đây: Tôi đang xin kinh nghiệm. Tôi tự tin rằng Microsoft sẽ không bao giờ giảm sự liên kết dưới 8 byte, bởi vì đôi sẽ không thể đọc được nữa. Tôi chỉ muốn biết điều đó cũng đúng với các nền tảng nhúng. – Ondergetekende