Apple建议您在使用Accelerate Framework时将数据对齐16字节。你在实践中如何做到这一点?
如果我有一个数组int[10000];
,是否有pragma
?如何将其与16字节对齐?
答案 0 :(得分:8)
为了对齐数据,您需要使用#pragma pack
。要获得16字节的对齐,您需要使用:
#pragma pack(push,16) ... your data structure here ... #pragma pack(pop)
我建议您阅读有关对齐的更多信息,因为您最终可能会损坏数据。
答案 1 :(得分:3)
malloc和朋友总是有16字节对齐。支持载体的其他原因。
如果你有一个int数组[10000];那么很可能它不应该是固定大小,而不是在堆栈上,而是使用malloc分配。然后它有16字节对齐。