【发布时间】:2011-02-17 20:27:57
【问题描述】:
我正在开发一个使用 Win32 的 HeapAlloc 的通用库
MSDN 没有提到 Win32 的 HeapAlloc 的对齐保证,但我确实需要知道它使用什么对齐,这样我才能避免过多的填充。
在我的机器(vista,x86)上,所有分配都以 8 个字节对齐。其他平台也是这样吗?
【问题讨论】:
-
如果MSDN没有说,那么没有保证。即使你问 1000 个人,他们都确定在他们的机器上是 8 个字节,这也不能保证,你可能不应该依赖它。
-
我同意上述说法。你可能想看看blogs.msdn.com/oldnewthing/archive/2007/12/27/6873648.aspx 看看它是否相关。
-
我同意,没有任何保证,但我不是在这里要求保证:我要求的是经验。我相信微软永远不会将对齐减少到 8 个字节以下,因为双精度将不再可读。我只是想知道嵌入式平台也是如此。