Visual c++ [Visual C+;+;]强制变量/数据结构的内存对齐
我正在考虑使用SSE,我收集16字节边界上的对齐数据。有两种情况需要考虑: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]; 对于动态分配
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