这一定是重复的问题,但我搜索了2天没有找到......
我将 MSVC 与 /std:c17 /std:c++17 一起使用,并试图让 alignas(64) 与双精度数组一起使用。下面代码中的语法是我发现的唯一可以编译的语法,但它没有对齐……通常,数组大约 75% 的时间是未对齐的。我知道有很多方法可以使用更复杂的语法来做到这一点,但是没有一种方法可以像结构或类那样与 alignas() 一起“正常工作”吗?
double* AR;
int count=0, asize=10;
for (int i = 0; i < 1000; i++)
{
AR = new double alignas(64)[asize];
if (((uintptr_t)AR & 63) != 0) count++;
//if (((uintptr_t)AR % 64) != 0) count++;
delete[] AR;
}