我正在考虑使用SSE,我建议采用16字节边界对齐数据。有两种情况需要考虑:
float data[4];
struct myystruct
{
float x,y,z,w;
};
我不确定第一种情况是否可以明确地完成,尽管可能有一个我可以使用的编译器选项?在第二种情况下,我记得能够在几年前控制旧版GCC的包装,这还有可能吗?
答案 0 :(得分:3)
对于静态数组,您可以使用
__declspec(align(16)) float data[4];
对于动态分配的数组,请使用_aligned_malloc和_aligned_free。要控制结构元素对齐,请使用#pragma pack。