如何在Objective C中对齐内存?

时间:2014-03-02 20:22:31

标签: ios objective-c accelerate-framework

Apple建议您在使用Accelerate Framework时将数据对齐16字节。你在实践中如何做到这一点?

如果我有一个数组int[10000];,是否有pragma?如何将其与16字节对齐?

2 个答案:

答案 0 :(得分:8)

为了对齐数据,您需要使用#pragma pack。要获得16字节的对齐,您需要使用:

#pragma pack(push,16) ... your data structure here ... #pragma pack(pop)

我建议您阅读有关对齐的更多信息,因为您最终可能会损坏数据。

答案 1 :(得分:3)

malloc和朋友总是有16字节对齐。支持载体的其他原因。

如果你有一个int数组[10000];那么很可能它不应该是固定大小,而不是在堆栈上,而是使用malloc分配。然后它有16字节对齐。