如何对齐在堆上分配的对象,类似于__declspec( align (#))?这包括数组,因此不能只将对齐添加到类中
class SomeClass
{
//Something
}
//Somewhere
a = new SomeClass[20] //aligned to 64 bytes发布于 2018-12-04 00:34:57
__declspec(align())只适用于具有静态生存期的对象,如果您需要比new提供的对齐更大的对齐,则必须使用专门的分配器来处理此问题(例如使用_aligned_malloc或VirtualAlloc )。
当VirtualAlloc使用系统分配粒度时,_aligned_malloc允许您指定所需的对齐方式(在我所知的所有windows版本上,它都是64k,与大多数分配相比,这当然是一个很大的值)。
https://stackoverflow.com/questions/53589464
复制相似问题