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

Visual c++ [Visual C+;+;]强制变量/数据结构的内存对齐,visual-c++,data-structures,Visual C++,Data Structures,我正在考虑使用SSE,我收集16字节边界上的对齐数据。有两种情况需要考虑: float data[4]; struct myystruct { float x,y,z,w; }; 我不确定第一种情况是否可以显式完成,尽管可能有一个编译器选项可以使用?在第二种情况下,我记得几年前在旧版本的GCC中能够控制打包,这仍然可行吗?对于静态数组,可以使用 __declspec(align(16)) float data[4]; __declspec(align(16))浮点数据[4]; 对于动态分配

我正在考虑使用SSE,我收集16字节边界上的对齐数据。有两种情况需要考虑:

float data[4];

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

我不确定第一种情况是否可以显式完成,尽管可能有一个编译器选项可以使用?在第二种情况下,我记得几年前在旧版本的GCC中能够控制打包,这仍然可行吗?

对于静态数组,可以使用

__declspec(align(16)) float data[4]; __declspec(align(16))浮点数据[4];
对于动态分配的数组,请使用_aligned_malloc和_aligned_free。要控制结构元素对齐,请使用#pragma pack。

对于静态数组,可以使用

__declspec(align(16)) float data[4]; __declspec(align(16))浮点数据[4]; 对于动态分配的数组,请使用_aligned_malloc和_aligned_free。要控制结构元素对齐,请使用#pragma pack