2014-03-02 44 views
7

当您使用Accelerate Framework时,Apple建议使您的数据16字节对齐。你在实践中如何做到这一点?如果我有一个数组int[10000];,有没有pragma?我如何将它与16字节对齐?如何对齐Objective C中的内存?

回答

8

为了对齐数据,您需要使用#pragma pack。要得到16字节alignement你将需要使用:

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

我建议你阅读更多关于对齐方式,因为你最终可能会损坏数据。

3

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

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

+1

不保证按此 - http://stackoverflow.com/a/5208379/1180117 – Kiran