[Visual C ++]强制变量/数据结构的内存对齐

时间:2010-04-22 08:25:53

标签: visual-c++ data-structures

我正在考虑使用SSE,我建议采用16字节边界对齐数据。有两种情况需要考虑:

float data[4];

struct myystruct
{
 float x,y,z,w;
};

我不确定第一种情况是否可以明确地完成,尽管可能有一个我可以使用的编译器选项?在第二种情况下,我记得能够在几年前控制旧版GCC的包装,这还有可能吗?

1 个答案:

答案 0 :(得分:3)

对于静态数组,您可以使用

__declspec(align(16)) float data[4];

对于动态分配的数组,请使用_aligned_malloc和_aligned_free。要控制结构元素对齐,请使用#pragma pack。