如何在 Objective C 中对齐内存?
Posted
技术标签:
【中文标题】如何在 Objective C 中对齐内存?【英文标题】:How to align memory in Objective C? 【发布时间】:2014-03-02 20:22:31 【问题描述】:Apple 建议您在使用 Accelerate Framework 时将数据对齐为 16 字节。您在实践中如何做到这一点?
如果我有一个数组int[10000];
,是否有pragma
?如何将此对齐到 16 字节?
【问题讨论】:
【参考方案1】:为了对齐数据,您需要使用#pragma pack
。要获得 16 字节对齐,您需要使用:
#pragma pack(push,16) ... your data structure here ... #pragma pack(pop)
我建议您阅读有关对齐的更多信息,因为您最终可能会得到损坏的数据。
【讨论】:
【参考方案2】:malloc 和朋友总是有 16 字节对齐。支持向量的其他原因。
如果你有一个 int 数组 [10000];那么很可能它不应该是固定大小,而不是在堆栈上,而是使用 malloc 分配的。然后它有 16 字节对齐。
【讨论】:
以上是关于如何在 Objective C 中对齐内存?的主要内容,如果未能解决你的问题,请参考以下文章