2010-04-22 71 views
0

我正在寻找使用SSE,我收集对齐16byte边界上的数据建议。有两种情况考虑:[Visual C++]强制变量/数据结构的内存对齐

float data[4]; 

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

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

回答

3

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

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

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