2014-03-02 49 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