[Visual C ++] Принудительное выравнивание в памяти переменных / структур данных - PullRequest
0 голосов
/ 22 апреля 2010

Я смотрю на использование SSE и собираю данные для выравнивания по 16-байтовым границам. Необходимо рассмотреть два случая:

float data[4];

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

Я не уверен, что первый случай может быть выполнен явно, хотя, возможно, есть вариант компилятора, который я мог бы использовать? Во втором случае я помню возможность контролировать упаковку в старых версиях GCC несколько лет назад, это все еще возможно?

1 Ответ

3 голосов
/ 22 апреля 2010

Для статического массива вы можете использовать

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

Для динамически размещаемого массива используйте _aligned_malloc и _aligned_free. Для управления выравниванием элементов структуры используйте #pragma pack.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...