Представьте себе структуру, подобную этой:
struct S {
__declspec(align(32)) double A[4]; // MSVC / ICL on Windows
double A[4] __attribute__((aligned(x))); // CLANG / GCC
};
Структура может быть размещена в стеке или, например, с использованием malloc, в любом случае сам экземпляр структуры может не выравниваться.Так можем ли мы рассчитывать на то, что элемент A будет выровнен по 32 байта?Если так, как это делает компилятор?