2010-04-22 106 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。