0
我正在寻找使用SSE,我收集对齐16byte边界上的数据建议。有两种情况考虑:[Visual C++]强制变量/数据结构的内存对齐
float data[4];
struct myystruct
{
float x,y,z,w;
};
我不知道第一种情况下,可以明确地完成,但有可能是一个编译器选项我可以使用?在第二种情况下,我记得几年前能够控制旧版GCC的包装,这仍然有可能吗?
我正在寻找使用SSE,我收集对齐16byte边界上的数据建议。有两种情况考虑:[Visual C++]强制变量/数据结构的内存对齐
float data[4];
struct myystruct
{
float x,y,z,w;
};
我不知道第一种情况下,可以明确地完成,但有可能是一个编译器选项我可以使用?在第二种情况下,我记得几年前能够控制旧版GCC的包装,这仍然有可能吗?
对于静态数组,你可以使用
__declspec(align(16)) float data[4];
对于动态分配的数组,使用_aligned_malloc和_aligned_free。要控制结构元素对齐,请使用#pragma pack。